#1248: Replace Zf\Config with Serializer-based config

In this commit I have placed the groundwork for replacing
the Zend\Config component with a JMS Serializer based solution.
This will enable us to show and document the configuration files
because they are solid objects.
#1248, #1212: Move configuration to application-level

It is not possible to define plugins using user-specific
configuration defined using the `-c` option because the
user-specific configuration was (re)loaded during individual
commands and thus after the plugins were loaded.

With this commit I have moved the configuration loading to
the application level and with it simplified the process and
enabling configuring application-specific configuration using
a user-specific configuration file.
#1248: Rewired ServiceProviders and Config

In order to improve segregation between components I have moved their
configuration into their own namespaces and rewired the configuration
to match that.

In addition I have extracted parts of the Application class into their
own ServiceProviders because these match a configuration heading
#1248: Fix typehints in the Configuration
#1248: RunCommand crashes on execution

This commit fixes a number of fatal issues where the recent refactoring
had broken the execution of the project.
#1248: Tests broken

In this commit we fix the broken tests for phpDocumentor after the refactoring
of the configuration component
Merge branch 'develop' of git://github.com/phpDocumentor/phpDocumentor2 into feature/1248

Conflicts:
	src/phpDocumentor/Application.php
	src/phpDocumentor/Transformer/Router/ExternalRouter.php
#1248: External Router tests broken

In this commit we fix the broken tests for phpDocumentor after the refactoring
of the configuration component. In order to properly run these tests we needed
to adjust the instantiation of the configuration to instantiate the sub-items
as well.
#1248: Add tests for Application and remove side-effects
#1248: Fix warnings in Application
#1248: Remove ConfigurableCommand superclass

The ConfigurableCommand superclass contains methods that are in
essence helpers. Because we favor composition over inheritance and
have stripped the ConfigurableCommand of its valuable body we
have moved the remaining methods to a Console Helper.
#1248: Remove Test for isAbsolute

The isAbsolute method was removed as it is a duplicate of the
method in the FileSystem component of Symfony that was introduced
not too long ago. All instances of the isAbsolute method have been
replaced with their Symfony version.
#1248: Write tests for the ConfigurationHelper
#1248: Update DocBlock for RunCommand
#1248: Write tests for the Configuration

In this commit I have written all the tests for the configuration definition
classes and cleaned those classes up.
#1248: Removed old configuration
#1248: Fix documentation
#1248: Fix notices and strict warnings
Fixes #930: Add support for self and $this
Bump version to 2.5.0