cmake: disabled all components except for core library and documentation
base_pokemon: get_types() returns strings instead of type ID's

* Typedef'd pair of strings to type_t
* Propogated function change to team_pokemon
Started re-sorting base_pokemon functions

* Grouped Pokedex data functions
* Moved get_form_name code from team_pokemon to base_pokemon
More converting from enum parameters to std::string

* "HP" instead of pkmn::Stats::HP, etc
* Propogated to all core library functions thase use base_pokemon and team_pokemon
Stringized abilities
cmake: readded database sources to fix Windows builds
library_bridge: removed unnecessary memory include
Changed name of pkmn::vla to pkmn::array
Class function conversions from std::vector to pkmn::array
Overhauled move class

* Separated get_*_id functions, main functions return associated strings
* Removed move_mainimpl class
Overhauled item class for API consistency
Refactored trainer class for API consistency

* Added default constructors for impl classes for copying
Added new internal file, copy_sptrs.cpp, for copying pkmn::shared_ptrs

* Vastly reduces duplicate code in team_pokemon_impl and trainer_impl
Added make functions for bag and base_pokemon that take strings instead of enums
Finished adding make functions using strings
Merge branch 'master' into overhaul
pokemon_text: added overloads for << and >> operators

* Both single-byte and multi-character stream operators
* These will be ignored by SWIG interfaces
array: refactored/added functions to emulate std::array (without iterators)
pokemon_text: fixed istream/ostream overloads
pokemon_text: added [] operator to get individual characters