Improved AssetManager.

AssetManager can now handle assets using a templated interface including
helper macros for ease of creation.