Make `submit()` return its errors

* Logging of the errors is now done by the caller.
* This change makes it possible for the caller to decide how to handle
  errors. Ie. retry etc.
Add deadline to submission

This makes it possible for the caller to decide how to handle things
when deadlines are passed. See [1] for discussion about this.

[1] https://github.com/bitly/statsdaemon/pull/22#issuecomment-28012478