Add AssetManager

AssetManager owns textures and is responsible for loading them, or
loading the new 'missing' texture if the file is unavailable.
Use AssetManager in Terrain
Implement Texture reloading
Use inotify to monitor for changed assets