Implement an Identity Map

**Note: As long it is WIP I will rebase and force-push at will.**

We realized that we definitely need an [Identity Map](http://martinfowler.com/eaaCatalog/identityMap.html). Not doing this would just lead to all kinds of trouble :wink:

Since we're aiming for Rails integration we need to make sure the map is reset for each request. In an ideal world this would happen somewhere in Rack to make it usable for other Rack-based frameworks.

## Todos

 - [x] Implement the map on top of an concurrency safe data structure
 - [x] Integrate the Map into the ~~Collection~~ `DocumentMapper` class
 - [x] Add a Rack-middleware to reset the Map upon each request
 - [x] Add sufficient documentation