Light re-factoring

== Issues ==
1. Fixed minor issue with setColor(null) using static DefaultColor instance (and thus next call for setColor(...) for one light instance will overwrite color value for all lights that previously set their color to DefaultColor) instead of copying it.

== Other Changes ==
1. remove() now don't dispose the light
2. Added add(RayHandler) method, so removed light could be added to ray handler back again, or added to any other ray handler instance without need of re-creating it.
3. Made setDistance abstract (to be consistent with other Light methods) and added dummy setDistance method to DirectionalLight
4. Fixed/added/updated JavaDocs
5. Deprecated staticUpdate() for further re-factoring of static lights update behavior
6. Renamed 'zero' to 'zeroColorBits' making it more understandable
7. Minor indentation/decorative code changes not affecting lights behavior