ParamConverter to inject the current user

When creating testable controllers, it's often desirable to not use the `getUser` function in the base controller, as this relies on the whole service container. 

In this case, we might add a dependency on the `SecurityContext` to achieve the same result, replicating this code: 

    public function getUser()
    {
        if (!$this->container->has('security.context')) {
            throw new \LogicException('The SecurityBundle is not registered in your application.');
        }

        if (null === $token = $this->container->get('security.context')->getToken()) {
            return;
        }

        if (!is_object($user = $token->getUser())) {
            return;
        }

        return $user;
    }

This parameter converter streamlines the process and injects the current user into the controller method instead using the following format:

    /**
     * @ParamConverter(converter="current_user", name="parameterName")
     */
    public function viewInboxAction(User $currentUser)


You have a dependency on the `SecurityContext(Interface)`. That means this converter should not be registered at the moment your application doesn't have it. This can be gracefully done by removing it when the `security.context` is not available. What if I register a second param converter that listens to that interface with a lower priority that doesn't need the `SecurityContext` for this?

In my opinion it's not up to the param converter to determine what should happen when the `SecurityContext` is not available, but the configuration.