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. I kinda like the explicit "No Storage" meaning that there is no chance that data is stored. That said, adding an upper bounds to the number of records stored in memory is probably a really good idea.