- Initial implementation of composed modules: A module may extend
  another module (which must have been previously loaded) and will
  then be merged with the parent module to create just one, with a
  composite class loading and a superset of all provides.
# TODO: [ ] Run initializers? [ ] Adjust tests and make them work again
# [ ] Measure performance [ ] Think about establishing provides => CL
# relation [ ] Document [ ] Merge with class loading hierarchy idea
- Associate loaders with provided packages inside modules
# E.g.:
# Module<xp-framework/compiler:1.9.0-dev>@[
#   xp.compiler: FileSystemCL<...compiler\src\main\php\>
#   net.xp_lang.tests: FileSystemCL<...compiler\src\test\php\>
# ]
- Refactor: Rename delegates -> lookup
- Add performance profiling suite & results
- Improve resource, class and package loading
- Add hint for extension: Do not access lookup member
- Remove Module::getClassLoader() - replaced by getDelegates()
- Fix string representation and module delegates tests
- Fix warnings from version calculation
- Remove tests relying on "core" module being present
- Fix string representation tests
- Fix testcases
- Use children's module names for finding delegates
- QA: WS
- Change Module::toString() to include delegate names
- QA: Mini-simplification inside Module::toString()
- Use curly instead of square brackets inside Module::toString()
# Visually more appealing, consistent with rest of framework
- QA: Fix fully qualified class name of lang.Module
- Also include provided packages in toString()
- Shorten paths inside toString()