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.
Is this valid cross-plattform and cross-compiler code?

What I understood reading this code was, that ```16``` bytes alignment is the size of a ```glm::vec4``` (so probably replace it with that?), so that between each ```PointLight``` struct instance there is an appropriate padding for the GPU.
You assume, that the ```PointLight``` struct will be ```vec4```-aligned in GLSL, what may change when you change the members of the ```PointLight```.
Instead of defining the alignment in the surrounding struct, I prefer giving the inner structs the aligned size (through manual padding) to avoid running into errors if you define another outer struct holding some ```PointLights``` where you miss the manual alignment.