Commit e68500f0

implement dynamic object definition files. do this by implementing some base classes so that implementing the same for tiles and wall tiles will be easy.

So far, object types were hardcoded, now a ConfigReader abstract class was introduced based on nlohmann/json and the FileReader class introduced for shaders a while back.
The newly introduced files look something like that:

Commit 53edc6a8

Remove redunant code from the renderer and make things more generic (sic)

This moves all the render pipelines that have been class members into a std::map so that we can iterate over them, this makes it a lot easier to get rid of some code duplication.
It also introduces a FileReader class which is only used for now to read the shader code. Before that, that same code was on the renderer itself since the beginnings of (OLives) times, where it obviously did not belong.