Refactored the OrderedDownstreamMessageEvent into an OrderedDownstreamChannelEvent so that any type of event can be sent in consideration of pipeline ordering. A use-case for sending channel events other than messages is for closing a channel (which is a state event). You may need to close the channel once the messages for a given pipeline have been flushed.

The OrderedDownstreamChannelEvent retains convenience constructors for sending messages as this is its most typical use-case.
Merge pull request #3 from huntc/ordered-downstream-channel-events

Allow any type of event to be encapsulated by an ordered upstream event