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
Ah, this is a `thread_specific_ptr` - new to me!

Why are we using this?  Is there a comment I missed explaining a little about what's going on?