Added duplicate analysis functions

* Implemented get_base_damage() and get_damage_range() using spec_pkmn
* For simplicity, added base_pkmn::get_generation()