Added AreaLight (still changing.)
Added genfactory.
Changed our pseudo reflections.
removed every parent name.
changed properties to use the new factory.
registered Shape, Rectangle, AreaShape<Rectangle>, Material, MonteCarloMaterial.
TODO change where we define the specialized code to register the properties, StringCastHelper.
Disabled all consexpr (for now) to be sure this works with vc++