replace noop client with support for nil receiver

This simplifies the implementation and API, and lets you avoid
initializing a statsd client if you don't want one.
update test-client for nil client