Attack/Defense Behaviors

Implemented attack/defense behaviors for all hero's and creatures using
Strategy pattern. Every Hero and Monster  have both a normal and heavy
attack. Heavy attacks have a greater chance to miss. Bosses have a
light, medium, and heavy attack.
Behaviors are set up so that from the combat system an attack call
should look like hero.attack(target), where both hero and target are
Character types. Or if a monster attacks a hero the call would be
monster.attack(hero). These calls will cause a single attack(including
the defensive part) to resolve between the attacker and target. Player
will be given options on what attack he wants to use for a hero in terms
of attack/defense. Monsters will decide attacks randomly.