[WIP] Add type on annotation and handle it

PR for https://github.com/FriendsOfSymfony/FOSHttpCacheBundle/issues/160

I have to replace UrlGenerator with Router because I need to know if a route has parameters, and then replace all token with a wildcard.

I also change method scope to protected. It make possible to fit for special need.
```php
#line 209 in Symfony/src/Component/Routing/Router.php
public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH)
{
    return $this->getGenerator()->generate($name, $parameters, $referenceType);
}
```

```php
#line 137 in Symfony/src/Component/Routing/Generator/UrlGenerator.php
// the Route has a cache of its own and is not recompiled as long as it does not get modified
$compiledRoute = $route->compile();
```

It safe to use Router.php.