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

Lot of changes. Please review
Copying and pasting code is okay for prototyping and testing, but by the time you're submitting code to be merged you should clean it up. We want as little duplicated code as possible in the repository. Having an unused `MapTile::draw` function make no impact to the behavior of the program, but it makes the code harder to understand and harder to search through.