Added ability to measure clock offset from cluster

RPC servers and clients now both update a shared map of measured remote offsets.
Servers get this measurement from their attached clients. Servers
are given this ability because they don't always have their own client to the
remote node if that remote node has a client to them.

The server now passes a Context object to the rpc frameworks rather
than passing all 3 required fields individually.

Though the algorithm for measuring cluster offset is now implemented, the server does not yet actively measure cluster offset nor does it do anything with any offset measuring.
The default heartbeat interval is 3 seconds, so the default timeout is 6 seconds. This is probably too large, but it depends somewhat on the network structure.

Right now I assume that the minimum message delivery time is 0, therefore the largest possible error we calculate is roughly 3 seconds, half the round trip delay (though it is unlikely for any heartbeat to take so long). However, if the minimum message delivery time (call it min) is larger, then the error estimate can be decreased to 3 seconds - min. 

(my estimations of error are based on page 6 of this paper: http://se.inf.tu-dresden.de/pubs/papers/SRDS1994.pdf)