Moved xgclass.h to API and DED data/parser to libdoomsday

Todo: The parser has linkages back to the DED data structure; more
code from def_main.cpp needs to be moved.
Merge branch 'master' into defs-v2
Refactor: Relocated DED parser and data structure to libdoomsday

Also cleaned up the code a little by removing internal use of
opaque Uri instances, since everything is now C++ and can use de::Uri
directly.
Refactor|DED: Collecting ded_s related methods into the C++ class

Cleaning up the implementation by identifying what actually
constitutes the DED database.
Refactor|Cleanup: Cleaning up the old DED sources
Refactor|libdoomsday: Encapsulated the DED parser into its own class
Cleanup|libdoomsday: DED Flag definition's text member ("Info") removed

This was not being used for anything (any more?).
libdoomsday|DEDParser: Accept "Info" in Flag as a known label

The value is ignored, though.
Updater|UI: Minor rephrasing of the update availability text
Refactor|libdoomsday: Added a header for individual DED data structs
Refactor|libdoomsday: Added dedarray.h for DED array management
liblegacy: Added a C-string duplication function
Refactor|libdoomsday|DED: Definition memory management

This commit applies some C++ sugar so ease the handling of the DED v1
definitions. Since these are C POD structs, a DEDArray<> template
was added to help with the allocating and releasing of memory owned
by elements. DEDArray also handles the dynamic resizing of the
array, as ded_count_s has been incorporated into it.

Each individual DED data struct is now responsible for releasing and
reallocating memory owned by it (such as Uris). These methods will
be called by DEDArray as needed. The inline copy logic from the DED
parser was moved to the DED structs.
Refactor|Client|Server: Use revised libdoomsday DED structs

Also, the various definitions intended to be shared between the
engine and the game plugins have been collected to an object called
RuntimeDefs.

The definition arrays in RuntimeDefs have been cleaned up using a
dynamic array template (somewhat similar to DEDArray).
API|DEH Reader: Use revised DED structs, dropped deprecated API functions

The DED_AddValue and DED_NewEntries functions are no longer relevant
now that one can link against libdoomsday and access the definitions
arrays that way.

The Def API was bumped to v2.
Cleanup
Merge branch 'master' into defs-v2
Fixed|Windows|libdoomsday: MSVC specific build problems and exports
Fixed|Windows: MSVC solution generator script
Fixed|Client: Crash when handling an empty definition array

If std::vector is empty, one cannot take a reference to element zero.