James Golick method cache patches

This pull request merges in the @jamesgolick hierarchical method cache patches.

I've fixed a bug in `rb_const_set` and `rb_const_remove` where these functions failed to invalidate the global state version (which is what constant lookups are cached against)