[ZF3] [WIP] Event Manager and MVC Events

I'll update the description later, but here is a link to some documentation describing the reasoning behind code - namely serialization. http://devosc.github.io.

This PR is for a revised event management and service management system for ZF3.

Its impetus is to delegate event handling to the event class instead of to the EM which makes the event class also an event handler. Not only does this further decouple events from the EM, but it also allows events to manage the response from the listener being invoked with that event. For example when a controller is dispatched we might only want to store the result for that controller rather than the response(s) from all of the listeners for that event.

The Event Manager is now a type of service plugin manager, and is configurable via the application's config file:
```
'event_manager' => [
    'Application\Event' => [
        [
            'Listener\Application\Bootstrap',
            'Listener\Application\Route',
            'Listener\Application\Dispatch',
            'Listener\Application\View',
            'Listener\Application\Response',
        ]
    ],
],
```
Since the EM is a type of service manager, it is able to create listeners via the service manager and consequently listeners can be configured as strings.

Only one instance of an Event Manager is used within the framework, it is the Application class itself; by not having a Shared Event Manager and using a single EM makes its API a lot easier to work with and improves the overall performance of the system.

The revised event system has been applied to all the Mvc Events and their related listeners. From which there is a general pattern of implementation

* Event.php
* EventListenerInterface.php
* EventTrait.php
* Listener.php
* ListenerInterface.php
* ListenerTrait.php

Both events and listeners implement their own behaviours and share a common *EventListenerInterface* interface, which can be handy for shared constants (event names) between events and listeners.

The behaviour of these events and listeners can be separated into their own traits, making it possible to invoke them with named methods and arguments, they are also a lot easier to reuse rather than to inherit.

One consequence in implementing the revised event system is that Controllers are now event listeners with one listener (controller) per action (__invoke method). However it should be possible to support multiple action methods like before.

The <a href="https://github.com/devosc/ZendSkeletonApplication">Skeleton Application</a> used with this PR uses a single application.config.php file, and the index controller is now a listener.

Overall the performance of the new event system is pretty good. Next steps would be:

* Route Plugin Manager should pull default route _listeners_ from the configuration and use a plugin manager similar to the new View Manager (aka View Plugin Manager).
* Module manager now becomes a configuration manager since listeners can be configured as strings for their respective events