Implemented strategy instantiation in factory. Refactored strategies.

Refactored AttackStrategy as best I could but still ugly.
merged with master
Merge pull request #59 from Tadimsky/refactoring

Refactored strategies