Let there be light

And there was light!
For now there is no scene graph or property implementation, all lights are added in painter.cpp, check that out to see how you can add lights.
try to use consistent approach for "down casting" vectors, i mostly favor ```(some vec4 mat).xyz``` over ```vec3(some vec4 math)```