Added AgentTypeEvent

Added a new event type for setting the agent type. Also added handling of
this event which meant updating several interfaces and implementations.
Fixed some commenting.
Updated protocol description
PlayerInfo overrides equals and hashCode

Also added a PlayerInfoTest class.
Setup now has methods for reporting player info

Added getFoxInfo() and getSheepInfo() to Setup and did a little bit of
cleanup.

Also improved SetupTest significantly. There are now more tests and they
have been improved to check player info. The tests are now a lot faster
as well because an error was detected. I had forgotten that each log is
replayed separately and that this means that the first delay disappears
for both players.