Control channel from strong-cluster-control

@kraman, can you review?

Implementation might need adjustment once I use it in strong-supervisor, but this is basically what I needed from strong-cluster-control.
Could this lead to callback being called 2 times? once for message and then for some error that happened?