Introduce relation reader object and refactor session

  * It is now possible to inject a reader if you want to do custom stuff
    while tuples are being yielded by the relation

  * Session relation uses a custom reader to store objects in the identity map

  * Storing loaded objects in the tracker happens now in session relation

  * All session state objects simply receive object and relation now

  * Session mapper decorator was removed

  * Relation#inject_mapper was removed

  * Relation#inject_reader was added