Corrected loading of buttons by name
Updated BMDie::create_from_string() to allow the die recipe to be cached
Changed BMGame->swingrequests to BMGame->swingRequestArrayArray, and changed BMGame->request_swing_values accordingly
Changed order of game states, so that specifyDice now comes after the dice have been added to the game.
Changed syntax of activate() to remove the required PlayerIdx parameter, instead shifting it to a class property
Changed syntax of add_die to use the inherent BMDie->playerIdx property
Removed behaviour from addDiceToButton, since this will be replaced by a database call
Added logic for BMGame->specify_dice()
Corrected logic so that proceed_to_next_user_action() works correctly
Corrected logic for doNextStep during startTurn so that proceed_to_next_user_action() stops when the attack has not yet been specified
Added swingValue tests
Integrated BMAttack into BMGame at the startTurn game state.
Improved test for reroll of attacking dice.
Optimised test for reroll of attacking dice.
Increased BMButton test coverage back to 100%
Added tests to BMGame. Improved validation for BMGame->attack.
Corrected logic in BMGame->capture_die()
Updated test case for BMGame->capture_die()
Increased unit test coverage for BMGame->set() and get()
Corrected BMGame->update_game_state() logic for BMGameState::endTurn