Refactored the Bonus object and factory methods

Similar to changes made to Skill/CharacterSkill:

* The initialization has been moved to an init() method, and a create() factory method has been added
* BattleAxe.addBonuses has been replaced with Bonus.sumOf