[Routing] Adding csrf_protect option for routes

| Q             | A 
| ------------- | --- 
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | ?
| Fixed tickets | #9273
| License       | MIT 
| Doc PR        | - 

This is a proposition corresponding to issue #9273

## Proposed feature

This would allow passing the `csrf_protect` option to true in a route like this:

```php
<?php

/**
 * @Route("/account/delete", name="delete_account", defaults={"_csrf_protect":TRUE})
 */
public function myAction()
{
    // The logic
}
```

Then:

* A `_csrf_token` parameter will be automatically injected in the URL on generation time with the route name as intention
* An event listener will check that the `_csrf_token` is passed and correct

## Changes

There is two main changes to achieve this:

* The `options` of a route are now available via the `UrlGenerator`, I added a `UrlOptionsInterfaces` that can be implemented by the generator to provide it (this also implies dumping them in the cache file)
* The CSRF logic is in the `FrameworkBundle` of symfony, the token is injected in the `Router::generate()` method and checked in a new listener (`RouterCsrfListener`)


Note that I admit that passing the router a Form service is not really good, I guess the CSRF provider should move in the Security component one day, any idea about that?
(**EDIT**: This is not true, see @stof  comment, I moved to Security CSRF Manager)