CMake ready for PKMNsim#

* Added find/use CMake scripts
* Added PKMNsim# component
PKMNsim# builds on Linux, pokemon_text throws a lot of Warning 516's
swig: added %ignore directives for C++ pokemon_text casting operators
PKMNsim#: only use constructors and set() functions that take const* char as parameter

* All four forms of C/C++ strings translate to C# Strings, so there's no difference
* Gets rid of multiple SWIG warnings
Moved %ignore directive for dict and VLA [] operator to global pkmnsim.i
Merge branch 'master' into csharp_swig

Conflicts:
	lib/swig/pkmnsim.i
Merge branch 'master' into csharp_swig
PKMNsim#: added CamelCase.i

* C# and Java's normal naming convention is CamelCase
* CamelCase.i renames functions and classes to match this convention
* So far, all currently Python-SWIG'd functions included
swig: added PRNG to global SWIG interface file
CamelCase.i: formatting
PKMNsim#: more templates for right naming convention, primitive-type vectors not working
Merge branch 'master' into csharp_swig
base_pokemon_gen2impl: implemented egg group functions
.gitignore: fixed accidental overwrite
io: fixed buffer overflow GCC warning
team_pokemon_modernimpl: fixed Clang string append warning
pokehack: add -Wno-invalid-source-encoding compile flag to Clang builds
io: added export_to_pksql (doesn't include attributes)
io: export_to_pksql exports moves
io: added import_from_pksql