Substantial work toward damage calculation

* Implemented move damage classes as enums
* Switched genders to enums
* get_base_damage() gets damage before any modifications
* get_damagerange() gets min/max damage, including type mods and STAB