libcommon: Cleanup
Refactor|libcommon|MapInfo: Remodeled mapinfo_t into C++ class MapInfo
Refactor|MapInfo|libcommon: Derive MapInfo from de::Record
Refactor|libcommon|MapInfo: Translate parsed map references in MAPINFO into URIs

Hexen's janky "warp translated" map numbers should now be considered
deprecated. This clunky mechanism should be avoided in future, and
map URIs used instead.
libcommon|MapInfo: Cleanup
MAPINFO|libcommon: 'Map' definitions may now reference maps with URIs

Support the ZDoom extension, whereby maps can be referenced by their
unique id rather than the MAPXX number in MAPINFO. For our use, these
will be parsed into URIs.
MAPINFO|libcommon: Ignore 'Episode' definitions (from ZDoom)
MAPINFO|libcommon: 'Map' definitions may now lookup a Text definition for the title

Support the ZDoom extension, whereby map titles can reference a Text
definition to use as the map title.
MAPINFO|libcommon: Ignore 'Clusterdef' definitions (from ZDoom)
MAPINFO|libcommon: Ignore 'skill' definitions (from ZDoom)
MAPINFO|libcommon: Ignore ZDoom-specific 'Map' definition properties

At some point we'll have to support most if not all of these. Right
now however, the priority is to ignore anything from ZDoom that we
don't understand so that MAPINFO can be parsed without error...

Todo:
- Handle 'nextMap' kludges.
- Handle defaultmap, adddefaultmap and gamedefaults
Refactor|MapInfoParser|libcommon: Use de::Error for MAPINFO parse errors
Refactor|MapInfoParser|libcommon: Restructured MapInfoParser with a function per block type
Refactor|MapInfoParser|libcommon: Ignore 'Map.next', 'Map.secretNext' EndGame directives (from ZDoom)
MapInfoParser|libcommon: Fix MapInfoParser::parseEndGame()
MAPINFO|libcommon: Support ZDoom's (add)defaultmap definition mechanism

As of this commit it should now be possible to parse MAPINFO lumps
which use the ZDoom-extended format without error. Presently most of
these features are ignored, however.

Todo: Test this with real world data. There are a few ambiguities in
the ZDoom docs which I may have misinterpreted.
MapInfoParser|libcommon: Typo
MapInfoParser|libcommon: ZDoom (add)defaultmap definitions have no id or title
Debug|libcommon|HexLex: Miscalculated line number following multiline, quoted text
MapInfoParser|libcommon: ZDoom's 'Clusterdef.hub' is boolean

Seemingly this is now working as expected. Tests with various real
world mods show that MAPINFOs in ZDoom-extended format now parse
without error and all supported values are extracted correctly.