Guava cleanup

This is a first step in removing our usage of guava (#288). I've removed the easy bits in this PR. This is a work in progress but I think it's going to be easier to merge now, and continue with additional pull requests.

An unsolved problem is how to tackle the guava classes that are exposed in the public API:

* AtomicDouble in DoubleGauge
* Function in MetricTransformObserver and the Contextual Monitors.
* Cache in Monitors.newCacheMonitor


The monitors list was added to the hash code here, but not for BasicTimer. I don't think it will change the result in this case, but any reason it isn't consistent for both?