base_pokemon cleanup

* Used virtual functions to remove duplicate code
* Used std::ostringstream for all query generation (more efficient)
* Misc cleanup
* Removed all usage of "using namespace std"
bag cleanup

* Moved pocket name mapping from 2D vector to database table
Fixed Windows unit tests
Overhauled C++ pkstring test

* Copied all operator/comparison checks into a single test
* Created test to check wide-character usage in database functions
tests: overhauled C++ shared_ptr unit tests

* Tests all copy_* functions (now exposed through DLL)
* Tests (base|team)_pokemon_modernimpl signal/slot system
tests: removed bag_pocket_test, now covered in sptr_test
Added copy function for prng
Merge branch 'master' into unit_tests

Conflicts:
	lib/copy_sptrs.hpp
sptr_test: added PRNG test
tests: improved prng_test

* Added tests for ARNG and MTRNG
* Fixed uninitialized value exposed by MTRNG test
Made dict_test more robust
Added text_conversion_test

* Checks conversions between in-game encoding and pkmn::pkstring
* Added extra check for Gen I/III gender symbols
tests: added python_sptr_test.py
tests: added CSharpSPtrTest
tests: added JavaSPtrTest
Removed python_enum_test, overhauled CSharpStringTest (currently failing)
Overhauled JavaStringTest
Added markings struct

* Added get/set functions to team_pokemon
* C++ and C# implementations have implicit conversions to/from uint8_t/byte
* Moved Markings enum into struct
CMake cleanup
markings: fixed reversed storage