Splitting a stream into two streams.  then for each stream attaching a mailbox as a listener.
Adding a type which couples an Actor (mailbox processor) with a query on Observables, so that the event query and the event action can be defined separately from where we receive messages from Rabbit.
Updated the TypeA listener so that it is using the StreamListener type.
Updated the StreamListener so that the Query is optional: in case the listener doesn't care about filtering.

Also did some code clean up in the main function by adding a function which handles binding a stream listener to the incoming stream.
Added a new message type which will pass functions of type unit -> unit.  However, this does not work as I wanted, because the subscriber cannot deserialize the function without having  a reference to the assembly the function was defined in.