WIP improve how readers find mappers (shameless green!)

This makes reader track its path based on relation access. For instance
if you call:

  rom.read(:users).sorted.by_name('Jane').with_tasks.page(2)

Then the reader path will be "users.sorted.by_name.with_tasks.page"

This allows us to find the best mapper for a given relation (first match
== best).