3 lights ( + material and shader injection) implemented and tested on ios, android and rasberrypi

Lot of changes. Please review
Same issue here with a possibly (unlikely) divide by zero. These blocks of code calculating attenuation look pretty much the same in every type of light, could we make it a small shared function that they call? (That way we only need to change things like this in one place)