LOW PRIORITY: FEATURE: Add data handling to SimplePush

Allow "data" to be send to actively connected clients. This does NOT store the data, so if a client isn't connected, the data WILL BE discarded.

Also: 

* add unit tests for Update handler
* refactor code to provide framework for adding unit tests for handlers
* removed some extraneous classes that were causing data duplication.
Hmm... Interesting. I agree that they're only called within the context of Run, (technically sniffer) and therefore don't need to be separately defined, however I could also argue that those functions are kinda core to Worker. I'll pull them for now, but they might come back  if we ever need to exercise the workers.