Added caching layer

To improve performance, the `ApiDoc` metadata is being cached and automatically invalidated when any of the routing files and related controllers are updated.

Added a few tests for this. Please let me know if they are insufficient and how I can improve them.
also, you could use `%kernel.cache_dir%` rather than injectin a `cacheDir` variable into this class