Report number of invalidations

* Add tests for new methods
* Implement `#cache`, `#method_cache`, `#constant_cache`, `#class_cache`
* Refactor `#cache?` by delegating to `#cache` and friends
* Update README Usage section