* reorganize code
* first draft of map generator interfaces
* add explicit random interface to board helpers
* implement standard map
* rename Generator to GameMap
* allow initializing snakes separately from placing them
* add random number generator to Settings
* updates to GameMap interface
* add helpers for creating and updating BoardState with maps
* extract board generation out of rules.Ruleset
* update comment and remove redundant interface check
* clone boardState in constrictor to respect the ModifyBoardState interface