Bonus validation improvements.

- New valid_bonuses method to get all the valid bonuses for the player.
- Set is now used instead of array for the bonuses.