Upgrade to Metrics 3.0, update our API to match it

For #19.

I still need to update the docs but the idea I had in mind is implemented and all tests pass. Note that
one small feature (defgauge with a body) and a couple of tests are gone:

 * We generally manage to use the default registry or a user-provided one in the API but it's a real mess with variadic `defgauge` w/ a body, so I decided to drop it for 2.0.
 * Metrics 3.0 uses nanoseconds precision in timers, which makes some of the tests quite confusing.

@sjl thoughts?