Started Light re-factoring

== Issues ==
1. Fixed minor issue with setColor(null) using static DefaultColor instance (and thus overwriting it's value for all lights using it) 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. Started fixing/adding/updating JavaDocs