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


Has it ever been useful to have the additional context from the config when looking at the exception? Not sure if the stack trace alone would usually give enough context.