broker: route rank 0 requests over primary TBON

When a request message is addressed to rank 0, as opposed to
another rank or FLUX_NODEID_ANY, any rank > 0 knows that rank
0 is "up" and can be reached via the primary request TBON.

This is an optimization for what is becomming a common case.
- rank 0 can usually be reached via TBON in fewer hops than ring
- the primary TBON implements self healing, while ring does not
broker: allow rank-addressed request loopback

If a request is address to a specific rank, and the rank matches
that of the sender, and the target is the same service that sent
the message, allow the message to loop back to the sender.

This is a useful way to simplify some message flows in modules,
for example if a module is both producing and consuming particular
message.
test: add tests for routing changes
Merge pull request #121 from garlick/broker-route-special-cases

broker: modify routing for two special cases