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
1. Can we add the new parameter to the end, please?
2. `nullptr` - there's almost never a reason to do this in modern C++. Let's see how this shakes out!