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.
Yes, I sympathise with that. I toyed with the idea of a struct argument here.

I'll factor out the handler function as you suggest - I think it's pretty
obvious that entityHandlerKey is intended to be a key.