Added `Topic` to async

I have created the topic primitive I would like to add to async. 

I also extended the Signal to have read-only variant. Not sure tho if this is compatible with your thoughts on signal combinators Paul, however I think having read-only signal is useful. 

I have also attached couple of basic tests to test the topic functionality. 

What's I really like on combining the Topic with Signal is idea, that we can now run process to publish to topic based on number of subscribers. So you can have process attached to signal, that will only feed to topic once there is subscriber available 

This resembles to `workers` that can be dynamically added or removed and work is submitted to them only if there is at least one worker available :-)