Initial work on packages.

While I imagine this code could eventually be merged with the resource
manager code, I am keeping it separate for the time to focus just
on its code, then later migrate and merge code as needed.
Minor work implementing package manager.
Bug fix.

Fix counter to ensure only current packages are scanned if parent is
false.
Added package selection to start menu.

Selecting a package from the start menu will set the current package and
upload the lists.
Packages load campaigns, levels, and worlds.

This set of changes allows the packages to list the levels, worlds, and
campaigns in the start menu.
Fix tabs/spaces
Minor fixes for switching packages.

This change fixes crashes when switching packages.  There is still a
crash if a world is loaded and then switching packages to another world
it that package does not have a "World 1" world.
Renamed game data directories.

In order to have consistend naming for user and game data directorys,
the game data directories for "world" and "campaign" have been renamed
to "worlds" and "campaigns"
Fix package code to handle renamed directories.
Fixed crash when changing package.

This is a fix for a crash that occurs when loading a package.  When
loading a package, the current list of overworlds must be cleared and
reloaded from the newly selected package.  This deletes the current
overworld "pActive_Overworld", and resetting the player's save will
attempt to load World 1. If it does not exist then a blank world will
be created to avoid a crash.
Changes to package manager, some level work.

Some minor changes to the package manager are that levels, worlds and
campaigns are now package-only, meaning that they do not use the search
path.  It seems to make sense that a package that provides these items
would have their own "story line" and not depend on a story line of
another package.  Media files still use the search path.  This makes it
possible to create resource packages that contain graphics and music
that can be used by other packages.

The package manager now supports saving levels in the current package.
In addition, a music filename can be set which will use the package
search path.
Added more items to Init_User_Paths.
Sprites and background now use package manager.

Code has been added to video.cpp to support packages. A level background
is now loaded from the package manager.  In addition, sprites use the
package manager when loading.
Specify package to load on the command line.
Load cached images only if original is game data.
Hidden pacakges changed to now show in the list.
Removed unused function.

Since all cache items are stored under the same directory based on the
relative path from the game data directory to the cached item, the
Get_Use_Imgcache_Path is not needed.
Savegames now saved to subdirectory for packages.

When playing a package, screenshots and savegames are stored in a
subdirectory of the usual directory.
Package selection saved in preferences.

Due to crash issues when changing the package mid-game, such as from the
middle of playing a level, the current package is only set at game
startup.  Selecting a package will save the package to the user
preferences to be used the next time the user runs the application.
Load package information from packge.xml

Package information is now loaded from package.xml under the package
directory.  This information currently includes a description, hidden,
and dependent packages.