All stores, streams, and sources now use value semantics.  Event versions of those are defined by the artifact store, which then uses a shared pointer.
Adding functionality for routing messages based upon datatypes.