Port Sirkel to the new CloudHaskell 2.0

sirkel 0.1 was based on the 'remote' package, the first iteration
of CloudHaskell. The sirkel codebase has been migrated to the new
CloudHaskell distributed-process-* and the network-transport
libraries.

1) Port sirkel to new distributed-process API.
2) Use new closure creation.
3) Use GHC Generics for Binary instances of data structures.
4) Some code refactoring.

None of this new code has been tested. It needs:
1) 'examples/TestClient.hs' should be tested.
2) Spawn attempts with the old 'ptry' are commented out. They
   are assumed to always succeed. Spawn exceptions will need catching
   once again with the new CloudHaskell API. Without this, sirkel
   is not fault tolerant.
3) QuickCheck tests should be added, at least to ensure a well behaved
   DHT in the absence of faults, as a set of nodes hosted on localhost.