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.
Yeah, it is. I'll update as soon as I get on my machine.