This task is to implement a VectorClockService, which will unify, track, gossip and ensure persistence for all of the global vector clock components. Specifically, the components which it will track are: clusterTime, configOpTime, topologyOpTime.
The VectorClockService will be hooked at all inbound/outbound network places in order to be able to gossip the global vector clock and should implement the following methods:
- gossipInMemoryVectorClockOut(BSONObjBuilder* outMessage)
- gossipInMemoryVectorClockIn(const BSONObj& inMessage)
- registerVectorClockChangeListener(ListenerInterface& nonBlockingListener)