Expose Message and broaden the scope of polymorphic expect

Remove AbstractMessage and replace its forward and maybeHandleMessage
API with versions that operate directly on Message. Create Typeable
and Binary instances for Message and export the type from Process.hs
(though not the constructor). Provide functions for matching, wrapping
and unwrapping Message.