[SecurityBundle] Add functional test for form login with CSRF token
[Security] Refactor LogoutListener constructor to take options

This will facilitate adding additional options for CSRF protection. Additionally, a unit test for existing behavior was added.
[Security] Allow LogoutListener to validate CSRF tokens

This adds several new options to the logout listener, modeled after the form_login listener:

 * csrf_parameter
 * intention
 * csrf_provider

The "csrf_parameter" and "intention" have default values if omitted. By default, "csrf_provider" is empty and CSRF validation is disabled in LogoutListener (preserving BC). If a service ID is given for "csrf_provider", CSRF validation will be enabled. Invalid tokens will result in an InvalidCsrfTokenException being thrown before any logout handlers are invoked.
[SecurityBundle] Templating helpers to generate logout URL's with CSRF tokens

As each firewall is configured, its logout listener (if any) will be registered with the LogoutUrlHelper service. In a template, this helper may be used to generate relative or absolute URL's to a particular firewall's logout path. A CSRF token will be appended to the URL as necessary.

The Twig extension composes the helper service to avoid code duplication (see: #2999).
[SecurityBundle] Fix execution of functional tests with different names

Using "securitybundletest" as the default environment for the functional test's kernel causes a PHP fatal error redeclaring the class "appSecuritybundletestDebugProjectContainer" when multiple tests (with unique names) are executed. In lieu of forcing tests to specify their own environment explicitly, we can simply append the test name into the environment.

Note: this bug may be related to PHPUnit executing multiple tests within the same process.
[SecurityBundle] Use assertCount() in tests

See: fd174a228b2964ae6f362d2f2b22ee2e353b5803
[Security] Use LogoutException for invalid CSRF token in LogoutListener

On the advice of @schmittjoh, this commit adds a LogoutException class for use by LogoutListener if the CSRF token is invalid.

The handling in the Security component's ExceptionListener is modeled after AccessDeniedException, which gets wrapped in an AccessDeniedHttpException in the absence of handler service or error page (I didn't think it was appropriate to re-use those for LogoutException).
[json-response] Add a JsonResponse class for convenient JSON encoding

Usage example:

    $data = array(user => $user->toArray());
    return new JsonResponse($data);
[Process] Code clean up
[Process] Add ProcessBuilder::create() for more fluidity in the interface until 5.4
[Process] Always escape commands properly and remove windows-specific handling
[DoctrineBridge][Security] Fixes bug that prevents repository's refreshUser from being called
Improving performance on digit filtering
[Process] Add windows compatibility to Process component
Fix env inheritance and added tests
Restore bypass_shell by default with windows compat
Feedback fixes
[MonologBundle] Fixed a bug when adding a processor on a service handler
merged branch stof/fix_monolog_processor (PR #3418)

Commits
-------

d02ca25 [MonologBundle] Fixed a bug when adding a processor on a service handler

Discussion
----------

Fix monolog processor

This is the proper bugfix replacing #3417, and adding a test for it
Resolves issue with spl_autoload_register creating new copies of the container and passing that into the closure.