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