Inject HashedWheelTimer and ThroughputCache instances.

The HashedWheelTimer documentation says that there should only be one
instance per application.

This avoids leaking HashedWheelTimer threads.

Fixes #624