Module dependencies

Extensive tests required.
Dependency calculation tested with synthetic use cases.

Behavior:
Cycles will be dropped from the dependency map.
If a core module is involved in a cycle, complete dependency calculation is canceled and legacy module order is used (core modules before alphabetical rest).
Each non-core module's dependency map is extended with each core module and their dependency map, that does not create a cycle.
Cycles and unresolvable modules will be added at the end of the module order.

How to define dependencies:
Create a depend.php within the config folder of your module and add entries to the dependency map.
Multiple own dependencies:
`$GLOBALS['TL_DEPEND']['myModule'][] = 'otherModule';`
`$GLOBALS['TL_DEPEND']['myModule'][] = 'otherModule2';`
Injected dependencies:
`$GLOBALS['TL_DEPEND']['anOtherModule'][] = 'myModule';`
Injected core dependencies:
`$GLOBALS['TL_DEPEND']['core'][] = 'myModule';`