Fail harder on errors

Currently if the client emits an error we log it but just hang around.
The app is in an undefined state at that point so it's hard to say
what exactly will happen, but it's probably not ideal.

At least this way a process monitor can tell that it died and restart
it, ship the logs somewhere, or something.
Wait 1 second to exit to give in flight requests some chance to succeed
Merge pull request #112 from slackhq/die-on-error

Fail harder on errors