[Routing] Add support for 'priority' option for annotated Routes

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | [sensiolabs/SensioFrameworkExtraBundle#320]
| License       | MIT

If the given route option parameter has a priority key, it will be sorted. The use case is described in the linked ticket. This is a new implementation, previous one (#11747) was proven bad.

If the changes are acceptable, then I will create the changes also for the Doc
Yes, I agree with @jeremy-derusse: If there's no priority on a route, it should be treated like a 0. And so, a priority of 1 should be before all routes without a priority. This would be consistent with how event priority's are done: (https://github.com/symfony/symfony/blob/master/src/Symfony/Component/EventDispatcher/EventDispatcher.php#L95 and (https://github.com/symfony/symfony/blob/master/src/Symfony/Component/EventDispatcher/EventDispatcher.php#L176)

As far as implementing this, I'm not sure if the current approach of calling `addPriorityRoutes` will work or not. We need to somehow take the final route `$collection` (i.e. after the `foreach` in `AnnotationClassLoader` and re-order it based on the priority of *all* routes in that list. Perhaps a  function that looks like `$this->loader->reorderCollection($collection)` that compares the route names with an internal priority array that `AnnotationClassLoader` has?

Thanks!