replace noop client with support for nil receiver

It's up to you if you want to merge this, obviously, but I like this API pattern better for things that are optional like a statsd client.

You don't have to initialize a `*Client` if you don't want to (even a `NoopClient`), and you don't have to conditionalize calls to the client.  Win win!