[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.
Just for reference, this is how I solved this before: https://github.com/driebit/DriebitHttpCacheBundle/commit/c238a86109cfdda1af62198acb6c84e1394c524b. Unfortunately, I don’t think this solution will suffice here.