Make Disprove work for ClueStick.

Add generic tests for IClueAI. Tests currently dont work because of referential equality of Card.
Move file to reflect change in name of class.
Add basic implementation of Accuse() - never accuse anyone.
Dont suggest the same thing twice.
Rename unit tests to TestMethod() by convention.
Change Program structure so that we can make different bots at once.

ClueBot.Program becomes ClueBot.ProgramTemplate<>. For each implementation of IClueAI, we can derive from this class to get a Program class which will run the client with that AI.
Add comment on how to derive ProgramTemplate.

This is to build multiple clients with different AIs in a single build step.
Add ClueBat, slightly more clueful than ClueStick.

This is a very simple AI which has no strategy, except to try and exploit a flaw in ClueStick.
Fix bug in ClueBat - dont accuse your own suggestion.
Fix bug in ClueBat - check disprover not disproof.

If disprover is null this means that a suggestion has not been disproved by anyone. If disproof is null this means something else.
Apply fixes in a8b22e5 and 5ce22c0 to ClueStick as well.
Initialize various values in Reset() not in ctor.

These are only valid during a single game, and should be reset at the start of each game.
Cleanups and whitespace.
Pit ClueStick against ClueBat.
Add a few enhancements to the ClueSharp types.

These will be used by the more sophisticated AIs.
Add AllValues to Card to list all card values.
Add Value to Card to get out the underlying Enum.
Add Values to MurderSet, a list of the three Enum values.
Make m_ai protected. this means tests can be added to derived classes.
Add CluePaddle, a much more intelligent AI.
Fix bug in ClueBat - m_firstMove didnt get set to false.
Both ClueBat and CluePaddle avoid suggesting the same thing twice.
Add ClueByFour. - reasonable AI, without CluePaddle's powers of deduction.
Fix problems from merge conflicts.