Consistency/fixes

* Changed pkmn_nature map usage to new dict data structure
* Got rid of redundant get_X functions
* shared_ptr'd pkmn_nature class
include: vla constructor fills vector with right amount of elements from the beginning
Formatting+documentation consistency work
include: added PKMNSIM_API to analysis.hpp functions
Database efficiency work
Library work

* Proper interface/implementation separation for pkmn_nature
* Consistent make function placement for base_pkmn
Added internal string-formatting functions

* make functions transform identifier strings to database format
CMake work

* SQLITE3_FOUND is now cached
* Changed project name from PKMNSIM to PKMNsim
CMake work in anticipation of Windows installer

* Due to how NSIS installers work, install directory might not match CMAKE_INSTALL_PREFIX
* New get_database_path() function will first query environment variable PKMNSIM_DATABASE_DIR
* CMake only substitutes CMake variables into internal.cpp now, all classes use get_database_path()
* Boost system,filesystem libraries added as dependencies
Bin restructuring

* Renamed bin to apps
* Each app has a directory inside apps in anticipation of GUI versions
* Non-string functions from apps are brought out into common headers
team_analysis: fixed faulty calls to base_pkmn.get_types
Added try+catch to all makes to stop segfaults
team_analysis: added "Analyzing team..." message during long initial wait
team_analysis: only allow a team of six members