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

Lot of changes. Please review
Would it be bad to initialize `atFactor` to `1.0` ? If it's zero somehow then this will divide by zero and crash at runtime