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
That is personal preference. Some programmers argue that pointers should be compared against nullptr and bools as you suggested. I am okay with either choice.