Emit stats to statsd.

**Purpose**

A good way to look for malicious activity is successful and unsuccessful authentication/encryption events. Currently we have no way of doing this. This commit starts emitting these metrics to statsd. This way we can display it on a dashbaord and if we see a spike of unsuccessful authentication or encryption events we know someone may be trying to attack our system or something is going wrong on our end.

**Implementation**

* Before doing anything else, call `lemma.metrics.initialize` with the hostname and port of the statsd server. Optionally a prefix can be given to prefix all metrics. By deafult this is `lemma.{hostname}`.
* If you don't call `lemma.metrics.initialize` you can still call the `emit_success` and `emit_failure` methods, but nothing will happen. This is done to keep code clean, so instead of a `if` check every time you want to emit a metric, you can just try to emit the metric. It will be sent if you have the service configured. 
* Call `lemma.metrics.emit_success` or `lemma.metrics.emit_failure` whenever you wish to emit a  `Counter` metric. They are thread safe.
* Currently, the above two methods are only called by `lemma.httpsign.authenticate_request` and `lemma.httpsign.open`.

**Related Commits**
https://github.com/mailgun/lemma/pull/2
Alas, we can't use defer for this one :) You could make a helper function that does exactly what `authenticate_request` did before this change, and then have `authenticate_request` call it and emit metrics once based on the return value. ie:

    def authenticate_request(args):
        success = False
        try:
            success = _authenticate_request(args)
        finally:
            if success:
                lemma.metrics.emit_success(metrics_prefix)
            else:
                lemma.metrics.emit_failure(metrics_prefix)
        return success

It's less clear whether this one is worth it. It will actually cost more lines than what you have now.