Added lazy loading of assets

Assets, when requested, are lazy loaded into objects that track the files
stat information.  The file will not actually be loaded into memory until
it is either needed, or explicitely pre-loaded.  The AssetSystem will then
cull out Least Recently Used assets to maintain a low memory overhead
where possible.