[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.
http://symfony.com/doc/current/components/routing/introduction.html#the-all-in-one-router there is an option to set cache on router.