Worker registers itself on every connect event

This is a tidied version of the pull request I made earlier (#13). I removed the listener for the reconnect event to make the code simpler. The worker will now send `RESET_ABILITIES` if it is not connecting for the first time and `CAN_DO` on every connect event.

I also refactored the test helper to match cs idioms.
Is there any downside to sending this all the time, just so there's one less piece of state? (i.e. no more `first_connect`)