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
Handle more timeout cases
Revert "Handle more timeout cases"

This reverts commit 6f8eb790bf74798c6f4850784fcfd3dbef5f9d90.

Reverting this because I just discovered TCP connection deadline support
in Go.
Revert part of "Add deadline to submission"

This reverts part of commit 9097b2ea319d5219c67ce5d07f370508c95a25c3.

Removing this because I'll be adding a timeout to the client connection
instead.
Add TCP connection deadline