Implement a Quake-like virtual file system layer
This patch introduces a new module "share/fs" through which all file
system and input/output operations are handled. The module internally
is supported by the PhysicsFS 1.0 API, so this change adds an external
dependency on that library.
How things work (for those not familiar with Quake's PK3):
Neverball now has a single, unified view of the file system, there's
only the "write directory" to which files are written and the "search
path" from which files are read. The write directory is simply the
user directory (ie., ~/.neverball). The search path consists of the
following components (items listed later take precedence):
* archives found in the game data directory;
* game data directory itself;
* archives found in the user directory;
* user directory itself.
Archives are sorted alphabetically (and similarly, archives later in
the alphabet take precedence).
A file in one component with the same name as another file in another
component of lower precedence overrides that file, and Neverball only
ever sees the file from the higher-precedence component.
This has not seen significant testing yet, and some things have
probably stopped working. Keep your eyes open.
git-svn-id: https://s.snth.net/svn/neverball/trunk@2877
78b8d119-cf0a-0410-b17c-
f493084dd1d7