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.