Add RPC metrics (RIPD-705)

Add metrics to record the number of RPC requests received. Record the number of
node store fetches performed per request. Additionally record the byte size of
each request response and measure the response time of each request in
milliseconds.

A CollectorManager pointer param is used with dependency injection in the
ctors and factory functions so that the option of passing nullptr is
available when journaling nor metrics collection is desired.

Reviewers: @vinniefalco, @rec
Say, what?!  He's the one that's writing this code on both sides, so there's no necessity to pass in a `nullptr`.

But overall, I'm against this whole design.  `RPCHandler`, an already delicate piece of code (and that's very much changed in my RPC branch) now suddenly has to know a very great deal about how time works, how the collector works, and whether there's a collector at all.

But basically all Mickey needs is a single callback, with no data.  `RPCHandler` needs to know about zero of these details - I think the RPCHandler should be decoupled from the collector.