World::Map loads json from an allocator like Thing.

Again, pushing toward classes self-allocating. Should make things easier
for high level languages.
Reassigns Registry::Rule constructor to private method.
Adds documentation and forces Maps to be immutable.

Will we want to change Maps? It's rather hard, technically, to update
the map data once it is sent to the video card. Maybe later I will add
it back.