Composed modules

This pull request is my first idea how to implement xp-framework/rfc#263 and be more or less compatible to the current module approach.

Essence
--
Every module is a class loader which has one or more delegate class loaders. The "root" delegate is the first class path element and has no name. Modules may be *extended* by other modules. By extending such a - previously loaded - module, the class loader the module stems from gets added to the parent module as delegate named after the module's name. From this point on, when asked to load classes, package or resources, not only the root delegate, but also the named extended delegate is asked.

Example
--
This module.xp file inside `src/main/php` describes the XP Framework's core module:

```php
  module xp-framework/core(5.9.0-dev) {
  }
```

The module instance's root delegate now points to the `src/main/php` location. The unittests are located in `src/test/php` and its module then extends the above module by using the following declaration:

```php
  module tests extends xp-framework/core provides net.xp_framework.unittest, modules {
  }
```

The class loader is not added to the default class loader's list, instead the "xp-framework/core" module now contains an additional delegate named `tests`, which provides only classes from the packages `net.xp_framework.unittest` and `modules`. 

Usecase: Pluggable modules
--
This example shows a pluggable database driver architecture:

### Base module
```php
  module xp-framework/rdbms(2.0) {
    protected static function registerDriver($name, \rdbms\spi\Driver $driver) {
      // ...
    }
  }
```

### Drivers
```php
  // Sybase
  module sybase extends xp-framework/rdbms {
    static function __static() {
      parent::registerDriver(self::$name, new \rdbms\spi\sybase\Driver());
    }
  }

  // MySQL
  module mysql extends xp-framework/rdbms {
    static function __static() {
      parent::registerDriver(self::$name, new \rdbms\spi\mysql\Driver());
      parent::registerDriver(self::$name.'+40', new \rdbms\spi\mysql\V40Driver());
    }
  }
```

Discovery
--
The command line `-v` switch shows the modules. Example output:

```sh
$ xp -v
XP 5.9.0-dev { PHP 5.5.0alpha3 & ZE 2.5.0-dev } @ Windows NT LWKA-BN286R1 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
Copyright (c) 2001-2013 the XP group
Module<xp-framework/core:5.9.0-dev>@{
  ** @FileSystemCL<...\xp.thekid.core\core\src\main\php\>
  tests: net.xp_framework.unittest, modules @FileSystemCL<...\xp.thekid.core\core\src\test\php\>
  resources: net.xp_framework.unittest @FileSystemCL<...\xp.thekid.core\core\src\test\resources\>
}
Module<xp-framework/compiler:1.9.0-dev>@{
  xp.compiler @FileSystemCL<...\xp.thekid.lang\compiler\src\main\php\>
  tests: net.xp_lang.tests @FileSystemCL<...\xp.thekid.lang\compiler\src\test\php\>
}
FileSystemCL<C:\cygwin\home\friebe\>
```

For the above pluggable database architecture (and in a future like xp-framework/rfc#262 describes) we would additionally see:

```
Module<xp-framework/rdbms:2.0>@{
  rdbms @FileSystemCL<...\xp.rdbms\src\main\php\>
  sybase: rdbms.sybase @FileSystemCL<...\xp.sybase\src\main\php\>
  mysql: rdbms.mysql @FileSystemCL<...\xp.mysql\src\main\php\>
}
```