extend AbstractMessage with deferred type checking
introduce a 'catchesExit' primitive, document "exit signals", export API
Merge branch 'semi-typed-recv'
Merge semi-typed-recv into master

This changeset provides deferred matching for AbstractMessage.
The 'maybeHandleMessage' capability enables a common pattern, where
one layer of code is managing the process' mailbox and knows nothing
about which types can be handled, whilst another layer does not access
the mailbox, but is able to handle specific message types.

Building on this 'deferred type checking' we provide an exception
handler that can process a range of different exit reasons.
cosmetic (doc changes)
add @hyperthunk to the cabal meta-data