This introduces a logger mechanism and a new data/log directory. This is
a first proof of concept. It's built on top of the new global error
handling mechanism
Things to discuss:
* should we adopt PSR-3 somehow? if yes, how and should plugins be able
to drop-in other psr3 loggers?
* how to configure which facilities shall be logged?
* should we implement a log deletion feature?
* is the log format sensible?
* should we implement a log viewer admin plugin?
* should logging trigger events (it should maybe replace the
deprecation event)
Instead of parsing the passed callback ourselves, this patch relies on
call_user_func_array() instead to call an Event's default action. This
ensures all possible ways to define a callback (including static
methods) can be used.
This should fix a problem mentioned in #2943