Add enhanced unittest support

The new information is available from the 'unitTests' member of
every ModuleInfo.
'unitTests' is an array of __UnitTest structs. The __UnitTest
struct provides the unittest function, location etc as property
functions.

Internally, '__UnitTest' only stores a version number and an impl
pointer. Impl points to an instance of __UnitTest_V1 / __UnitTest_V2
etc depending on the version number stored in __UnitTest.

To add further information to unittests in the future, do this:
* Declare __UnitTest_V2 with the new fiels
* Add support for version 2 to __UnitTest
* Set the version to version 2 in DMD, glue.c
(search for // version=1)
* Update identifier in idgen.c (UnitTestImpl => __UnitTest_V2)
* Update UnitTestDeclaration::toUnitTestInfo to initialize the
new fields.
Support named unittests