internal/router: support for efficient include retrieval

We drop the ItemGetter logic - it was more indirect
and inefficient than necessary - and introduce the
notion of a BulkIncludeHandler which knows how
to group itself with other like-minded handlers
to make a single shared request.

This has the nice side effect that the RegisterCollection
magic is no longer needed, and the shared request
can be anything we like. The router no longer needs
mgo as a dependency.
So, this key will be different for each instance right? If so, I'd add a comment to clarify the intent.