This makes the low-level code a little more opinionated. If there is a
good reason for making `timers`, `counters`, etc. optional, then we can
PR it into place.
This almost makes mypy happy. I did manage to step on a defect that
there really isn't a great workaround for so I resorted to disabling
typing there.
https://github.com/python/mypy/issues/2427
Agree with @aremm here ... instead of requiring contortions to run
without a prefix, let's just require that it is explicitly set to `None`
if you want to skip the prefix. If you `prefix` isn't in the settings
explicitly, then use `$STATSD_PREFIX` if it is set; otherwise, try to
construct a prefix from service & environment, if that fails, then fail
hard in the initializer.