Enqueue settings

So here's the massive PR as discussed in #9 with tests and all.
A new API to `stop` the worker, much needed in the context of tests, maybe not for the user.
A new event `connected` on the connection to know when the initial setup is done.
A few bug fixes to return on error, otherwise it would be unpredictable.
Hopefully no breaking change.
Because the connection could otherwise emit errors with no one to catch them.