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.
Change test.sh to play ClueBat against ClueStick.
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.