A variable-length array should actually be used like an array
lib: fixed some base_pkmn and spec_pkmn bugs

* Add get_chance_male() or get_chance_female() functions to base_pkmn_gen(2/3)impl
* Fixed spec_pkmn_gen3impl::determine_ability()
include: MSVC bug/warning fixes

* added generation as spec_pkmn variable (why did this work with GCC?)
* told MSVC to ignore compiler warning C4251 (false alarm)