[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.
this is the place where things will fail when there are route requirements.