libcommon: Apply complete GameRulesets as a unit to the GameSession

The GameSession API now prevents the current game rules from being
modified unless a whole GameRuleset is applied as a unit.