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.
I don't see any sync emits within ensureConnection .... but anyways it might be a good idea if somewhere else is emitted