Cleanup api surface

We prevent the leakage of the underlying datastore by making object
members which are concerned with cotterpin private. Also the Join
method on all objects is gone to not force the user to think about
time advancing when in fact unnecessary. Left only is the
GetSnapshot method to satisfy the cp.Snapshotable interface. Some
of the unused methods are gone.

* Remove Join method
* Hide cotterpin type members
* Remove unused methods
* Methods which retrieve from datastore are named consistently