Start work on new forking+joining API

The old design has a major deficiency, in that forked computations always run to
completion independent of the originating computation, so the main thread can't
use the result of forks.  This new API provides a 'fork' primitive which returns
a computation which will block on the created fork's completion. There is a
discussion of the design ideas at the top of S.H.Conc.

A major feature of this API is that while it isn't a monad transformer, it
retains non-dependence on the IO monad - the resulting computations can be in
any monad.

I've also taken the opportunity to support multiple types of requests and tying
their type to the type of the results.  All this results in a more subtle
implementation but is much more useful.

This changeset just sets out the API and some supporting types - implementation
coming soon...
Update old S.H.LL module for new style Connection API

* Moved the generic stuff out of Conc and replaced Config type with the
  Connection class.

* Modified the S.Hurtle and S.H.LL modules to use the new Connection class but
  otherwise retained the same behavior.  This is a sanity check that that part
  of the API makes sense but once the new API is done S.H.LL and S.Hurtle will
  be replaced entirely.

* Prepared the test module for parallel testing of the old and new APIs.
Set up outline of implementation

Sets out the overall structure of the runHurtle implementation.
Implement completing processes

When processes finish, something has to be done with their results.  A typed
store of process status is used to manage interactions between processes and the
'receiver' notes when the original process has finished, returning its value and
cancelling all other running processes.
Implement requests in S.H.Conc

Covers the make request, wait for response cycle; forking and joining are not
done yet.
Implement forking and blocking on forks
Test the API

A solid test of all the API functionality.
Handle fatal errors and retry responses
Add logging support
Remove old System.Hurtle and S.H.LL modules
Move S.H.Conc into System.Hurtle
Merge branch 'joinable-forks'