clients can connect and subscribe to different channels
and they will get messages from those channels (basic pub/sub)
this is useful in the case of a client wanting issue updates
in real time, which is better than the client having to poll
/api/status every now and then.
- manager: add ServiceManager.subscribe and .unsub_all
- generalize elixire adapter into http adapter
- fix ping adapter not sending a tuple
- add ServiceWorker.process_work to insert results into the database