Various improvements, reworked BoardSnapshot

PlayerID to be changet to an enum class instead, the game logic section
of the program has no need for the players' actual names at all. Makes
card container addressing simpler.
Merge remote-tracking branch 'origin/Implement-GameLoop' into Implement-GameLoop

Conflicts:
	include/RuleManager.h
	include/TriggeredRule.h
	src/RuleManager.cc
	src/TriggeredRule.cc