Cache resources by their URL instead of their path

Since the URLs are resolved, this simplifies making sure that one
resource referred to from different relative paths is still considered
the same resource.

This change also simplifies requestSpriteDefinition and requestImage a
little and fixes SpriteDefinition still using a hardcoded sprite path.

TODO: Check/fix cutting off of palette strings (encoding issue)
Moved everything Mana-related into the Mana namespace

Actually the ResourceManager, SpriteItem and also the MapItem and
TileLayerItem are all Mana-related. Moving them into the Mana
namespace avoids having to prefix excessively.

TODO: Actually remove the namespace prefixes