Add more convenient method of retrieving request parameters.

- add optional $name and $default parameters to all request params' getters.
- getHeaders() will return "false" in case of headers absense instead of "null". This behavior is designed to make
it fully compatible with Http\Headers::get(). User can always provide alternative default value in second parameter.
- add singular getHeader() alias for getHeaders().
- supplement RequestTest with tests against Headers() container.
Fix indentation after last commit.
Fix minor cs issues.
Added test for potential DI injection vulnerability

- Setup environment that should expose ability to load an arbitrary
  class via DI as a controller
- Tests pass at this stage -- the invalid class is not loaded
Reproduced arbitrary class instantiation

- ControllerLoader does indeed instantiate an arbitrary class
Refactored ControllerLoader

- Added Controller\ControllerManager, for loading controllers. Ensures
  that peering SMs are not consulted for the creation of a controller,
  that classes are not automatically added as invokables, and that
  controllers are of a DispatchableInterface type. However, dependencies
  _may_ be retrieved via the peering service manager (and are during
  initialization).

- Added functionality to AbstractPluginManager to specify whether or not
  classes should be auto-added as invokables.

- ControllerLoaderFactory now returns an instance of ControllerManager,
  and does not add DI as an abstract factory to it.
Refactored DispatchListener

- Now accounts for the fact that the ControllerManager identifies when a
  controller is invalid.
- Added new InvalidControllerException, thrown by ControllerManager
Added missing test asset
Fixed API docblock for the init()
Merge branch 'request-params-convenience' of https://github.com/Thinkscape/zf2 into feature/http-request-accessors

Conflicts:
	library/Zend/Http/Request.php
	tests/Zend/Http/RequestTest.php

Modified from original branch:
    - Removed env/server related accessors/mutators from Zend\Http\Request, and
      moved them into Zend\Http\PhpEnvironment\Request
    - Removed most setters from the patch, as they were already present in
      AbstractMessage
    - Moved tests for env, server to PhpEnvironment\Request tests
Update library/Zend/Form/Element/Collection.php

Check if data is available to populate
Merge pull request #1985 from weierophinney/feature/controller-loader-security

Feature/controller loader security
[#1962] Improve Params plugin based on Request changes

- Modified to use the get[ParamType]($name, $default) usage of the
  Request object
- Added accessors for headers and files to round out the offering
Merge branch 'feature/http-request-accessors'
Merge pull request #1987 from coss/hotfix/app-init-doc-fix

Quick DocBlock fix for Appliaction::init
Merge branch 'patch-1' of https://github.com/davidwindell/zf2
Merge branch 'hotfix/form-collection-validation'
Element values

Changeset created for @WalterTamboer on his suggestions

Element values may or may not be appropriate string values. As an
example, you may want to seed these as DateTime objects or other such
value objects -- which means that when it comes time to render them,
you may run into issues.

As such, I've added "getValue()" and "setValue()" to the
ElementInterface, and made Element proxy setAttribute('value', $value)
to set the element value. View helpers now will pull the value from the
element and add it to the attributes if it should be rendered.

This simplifies the CSRF element, as it can simply override getValue()
at this point. The DateTime element (and those deriving from it) can now
cast a DateTime object using a format (defaulting to RFC-3339, which is
what HTML5 expects). Checkboxes and radios now pull the value, not the
value attribute.
Reference ZendService\ReCaptcha

- instead of Zend\Service\ReCaptcha
Ensure populateValues() calls setValue()

- instead of setAttribute('value', ...)