Move everything in src/filesystem.hpp into its own namespace
Rename filesystem::file_name to filesystem::base_name
Remove some unneeded includes
Make filesystem.hpp not depend on config.hpp being included first
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
file_name->base_name
Split the parts of filesystem.cpp that don't directly interface with the filesystem off into filesystem_common.cpp
Move everything in src/filesystem.hpp into its own namespace

This is a chearry pick by me (gfgtdf) of https://github.com/AI0867/wesnoth/commit/66176b1738c5d813959b4cd01536a7cc246831c3. It differes a lot from the original becasue since there were so much merging conflics i decided to do it mostly from scratch.

Conflicts:
	src/addon/manager.cpp
	src/addon/manager_ui.cpp
	src/campaign_server/campaign_server.cpp
	src/config_cache.cpp
	src/create_engine.cpp
	src/editor/map/context_manager.cpp
	src/editor/map/map_context.cpp
	src/font.cpp
	src/game_config_manager.cpp
	src/gamestatus.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/image.cpp
	src/multiplayer_lobby.cpp
	src/network.cpp
	src/playcampaign.cpp
	src/preferences.cpp
	src/savegame.cpp
	src/serialization/preprocessor.cpp
	src/tests/main.cpp
	src/wesnoth.cpp
	src/widgets/button.cpp
Rename filesystem::file_name to filesystem::base_name
Remove some unneeded includes

Conflicts:
	src/loadscreen.cpp
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

Conflicts:
	src/savegame.cpp
Remove a comment that is no longer true
Split the parts of filesystem.cpp that don't directly interface with the filesystem off into filesystem_common.cpp

Conflicts:
	src/filesystem.cpp
add filesystem_common.cpp to cmake
Don't try to iterate over things that are not directories
Merge commit 'ecf8f3d55cfd9ebc76e99941270500a5781d7819' into AI-boost_filesystem
Merge pull request #296 from gfgtdf/AI-boost_filesystem

This are the first ~10 commits of AI s boost filesystem branch and mostly a strict refactor. which i cherrypicked to my fork in order to test the boost fileystem. Because there commits are quite hamless but still cause the most merging conflicts i decided to pull them into master so we don't have to resolve these merging conflicts again if we merge boost fileystem into master. (There will be still be merging conflicts but much less). A lot of these commits differ quite much from their originals so i merged the original into this branch again by using "merge -s ours" to make git know that we already have these commits.