Fixed|Heretic: Build failure (order of includes)

The Map API was not declared as being in use early enough.
Refactor|libcommon: Continued remodeling savegame writing/reading
Refactor|libcommon: Removed need for a global ThingArchive for writing/reading savegames

Todo: MapStateWriter should fully encapsulate it.
libcommon|SaveInfo: Cleanup
Refactor|libcommon: Continued remodeling savegame writing/reading
Fixed|libcommon|MapStateReader: Build failure (refactoring oversight)
Typo
Refactor|libdoom|DoomV9GameStateReader: Renamed source files for DoomV9GameStateReader, cleanup
Refactor|libheretic|HereticV13GameStateReader: Renamed source files for HereticV13GameStateReader, cleanup
libcommon|SaveSlots: Updated include paths for legacy game state readers
libheretic|HereticV13GameStateReader: Cleanup
Refactor|libcommon: Added IGameStateReader interface
libcommon: Added a basic GameStateReaderFactory

With runtime registration so that new IGameStateReaders can be added
without requiring the factory to have compile time knowledge of the
derived classes.

Todo: The implementation could probably be improved (factory should
return instances with std::auto_ptr?). Perhaps libdeng2 could provide
the abstract components necessary for building a factory?
libcommon|SaveInfo: Saved games now record the game identity key (was gamemode)

If SaveInfo is to become game-agnostic then we need to refer to games
uniquely with identifiers which are known to the engine. The obvious
choice (and most future proof) is to use the unique identity key for
this purpose.

Gamemode identifiers in old save games are automatically converted in
the process of interpreting the game session header.

As the save version number has already been bumped to v14 for the
Doomsday 1.14 release, saved games made with an unstable build from
build 1131 onward will NOT be loadable.

Also applied the pimpl idiom to SaveInfo, plus further cleanup.
Refactor|libcommon|SaveInfo|SaveSlots: Improved SoC wrt savegame recognition

SaveInfo can be updated from a saved game state directly.
Fixed|libdoom|libheretic: Defer registration of vanilla game state interpreters until post-init

Todo: Why is the save game module initialized so late on?
Fixed|All Games: Various minor compiler warnings
libcommon|GameStateWriter|GameStateReader: Continued cleaning up savegame file management
libcommon: Cleanup
libcommon: Tweaked textual map banner formatting