* Added 3 implementations of AssetCache: SimpleAssetCache, WeakRefAssetCache and WeakRefCloneAssetCache
* Added AssetProcessor interface that handles cloning and post processing of assets after they are loaded
* AssetKey can now configure which cache/processor to use for a particular asset type
* Added AssetManager unregisterLoader method
* AssetManager now supports more than one AssetLoadListener
* Javadoc improvements in AssetManager
* Asset interface now renamed to CloneableSmartAsset (which more accurately describes its behavior and use case)
* DesktopAssetManager now makes proper use of the new AssetProcessor/AssetCache classes when handling asset loading
* Added proper equals/hashCode methods to many AssetKey subclasses, which is required for the new system to work properly
* All AssetKeys were rewritten to work with the new asset system
* loadAsset(AudioKey) now returns an AudioNode and not AudioData, similar to the behavior of loadAsset(TextureKey) returning a Texture and not an Image. Because of that, the key storage in AudioData has been removed.
* Texture, Spatial, and Material are all cloneable smart assets now and will be cleared from the cache when all instances become unreachable
* Improved the existing TestAssetCache test to make sure the new system works
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9309 75d07b2b-3a1a-0410-a2c5-0572b91ccdca