Move everything in src/filesystem.hpp into its own namespace

Conflicts:
	src/addon/manager.cpp
	src/campaign_server/campaign_server.cpp
	src/editor/map/context_manager.cpp
	src/editor/map/map_context.cpp
	src/font.cpp
	src/game.cpp
	src/game_config_manager.cpp
	src/gui/dialogs/editor/custom_tod.cpp
	src/gui/dialogs/lobby/lobby_data.cpp
	src/gui/dialogs/mp_create_game.cpp
	src/gui/widgets/settings.cpp
	src/hotkeys.cpp
	src/multiplayer_create_engine.cpp
	src/multiplayer_lobby.cpp
	src/network.cpp
	src/playcampaign.cpp
	src/savegame.cpp
	src/serialization/preprocessor.cpp

I produce this by cherry-picking gfgtdf's commit of AI's original
commit, from master to 1.12 as usual. git figured out about 2/3
of the file correctly, the rest I mostly had to do by hand. I have
now inspected each line of the diff, it looks good to me.

Edit: There were minor issues in campaign_server, now resolved
after rebasing this.
Rename filesystem::file_name to filesystem::base_name

Amended: src/editor/map/map_context.cpp
   src/gui/dialogs/editor/custom_tod.cpp
   src/gui/dialogs/screenshot_notification.cpp
   src/gui/dialogs/wml_error.cpp
   src/serialization/preprocessor.cpp
Remove some unneeded includes
Make filesystem.hpp not depend on config.hpp being included first

Conflicts:
	src/filesystem.hpp
Rename file_create_time to file_modified_time, as that's what it does
Remove a comment that is no longer true
Don't try to iterate over things that are not directories
Split the parts of filesystem.cpp that don't directly interface with the filesystem off into filesystem_common.cpp
add filesystem_common.cpp to cmake
Merge branch 'boost_filesystem' of https://github.com/AI0867/wesnoth into AI-boost_filesystem_3

Conflicts:
	.travis.yml
	SConstruct
	src/campaign_server/campaign_server.cpp
	src/create_engine.cpp
	src/editor/map/map_context.cpp
	src/game_config_manager.cpp
	src/gui/dialogs/screenshot_notification.cpp
	src/gui/dialogs/wml_error.cpp
	src/savegame.cpp

Conflicts:
	.travis.yml
	SConstruct
	src/save_index.cpp

The second conflict list is from the cherry-pick, the
first is from gfgtdf's original merge.

For me there was additional conflict in
filesystem_boost.cpp, because the
"treat_failure_as_error" flag does not exist in 1.12
branch, it was introduced to accomodate unit tests.

Additionally, dirsize was added even though its not
needed in 1.12 (I removed it), and the change

remove -> filesystem::delete_file

which appear in save_index.cpp in master needed to be
recreated in savegame.cpp in 1.12.
Merge branch 'AI_BFS_part_I_ii' into 1.12
Merge branch 'AI_BFS_part_II' into 1.12