* Avoid crash in ~LightsDriver_SystemMessage
This will avoid a crash caused by the fact LIGHTSMAN is destroyed
after the other MAN objects
* Rework code path for turning lights off on exit
Calls to LightsDriver::reset removed from each driver to avoid any crashes
LightsDriver::reset renamed to Rest to match surrounding style
Added LightsManager::TurnOffAllLights, called before XXXMAN objects are deleted
* Add LightsDriver::reset
Function will reset all lights to off
Function needs to be called by each of the driver implementations
as needed during destruction
* Reset lights to off on exit
This attempts to organize all needed items and places appropriate defines
in a single location. Redundant comparisons/defines were removed when noticed.
A few caveats, however:
* This may be better targeted towards the 5_1_0 branch instead of master right now.
* Cmake will run a little slower on configuration/generation now. That's due to the sanity checks it runs.
* There are some more checks to be added later, but this should be a solid start.
Thanks to the [libical](https://github.com/libical/libical) project for inspiration.