Major code cleanup.
Major change is upgrading from .net2 to .net 3.5 (client framework) and this changing all the collections to be properly generically typed. Also all tests are now in a uni test project rather just just being in a console application which you must run and verify test results manually.
Renamed exceptions from bizarre ExClSomeName convention to CassowaySomeNameException which is more standard C#

Signed-off-by: Martin Evans <martindevans@gmail.com>