Add a firehose channel

*This is an in-progress PR. It has been created early to allow for proper early review and tracking of issues.*

The firehose will syphon off raw messages and send them out over a specialized channel. This is primarily for internal uses as a way of attaching a drain to a single source to obtain an overall system state view.
make_ref() gives you a global lock. You should have decent entropy with `{os:timestamp(), self()}`.