stockpiles: refactor code into separate files

The file was approaching 3000 lines and contained multiple classes,
making it a real PITA to navigate through. upcoming features would only
add more LOC, so splitting was necessary.

Conflicts:
	plugins/CMakeLists.txt
stockpiles: implement GUI controls
stockpiles: integrate gui plugin into dfhack.init-example

Conflicts:
	dfhack.init-example
update NEWS and README with new stockpiles UI info

Conflicts:
	NEWS
	Readme.rst
stockpiles: fix usage help
Create stocksettings directory on startup if necessary
stockpiles: more error handling & cleanup

* prevent crashes when the path doesn't exist
* remove duplicated functions
* sort file list case insensitively
stockpiles: user friendly error handling

* display errors in the GUI when necessary
* handle older versions of DFHack without the persist module
stockpiles: fix loading crash
fix build error on windows

with certain #include permutations the lack of this define would
break the build on windows as windows.h pollutes the namespace with min
and max macros that conflict with std::min and std::max.
stockpiles: quiet debug
stockpiles: disable gui/script when plugin is disabled
stockpiles: update NEWS & Readme

Conflicts:
	NEWS
stockpiles: load prompt uses typing + filtering
stockpiles: handle old utils
cmake fix
stockpiles: show proper cased names in filter list