feature: rules support (identity & matches-after) + debugMode

Rules are placed in modules and specify re-ordering or elimination
of modules when environment setup happens; this is done both at
cold and cached start; though files are not reloaded so only
settings like debugMode can transparently re-apply as needed.

To place a rule simply create a autoload entry in your
composer.json for the module and add a rules section inside
a freia section.

Currently only identity and matches-after are supported, both are
arrays and accept nothing else but arrays.

 - matches-after specifies a list of modules that are required
   to be bellow the module in stacking order; if using a
   console, the new module-stack command in hlin.tools should
   come in handy to check

 - identity specifies how the module is to be identified by the
   autoloader, currently only the "debug" identity has any
   effect and will cause the module to be ignored by the
   autoloader when in debug mode

Autoloader now supports debugMode, this is enabled as an
additional parameter to the autoloader and causes it to not ignore
modules with an identity of "debug" by default this is obviously
set to false.

Example usage: set a domain variable you pass to your main
function to record the environment state (development, production)
then have it set to production in your production environment and
development in your development environment; you can now add
modules to profile or log various aspects of your application
with out having to worry about said logging getting in the way
in your production environment; just ensure the modules in
question have an identity of debug.