Configurable global method cache size

@charliesome /cc: @camilo

This makes the global method cache configurable at runtime via the `RUBY_GLOBAL_METHOD_CACHE_SIZE` environment variable.

Increasing the method cache from the default of 2k to 256k in Shopify has reduced the system-wide time spent in `st_lookup` and `vm_search_method` by about 4%:

The following are two 60 second profiles from one of our production app servers (`perf record -a -- sleep 60`):

##### 2k method cache
```
     9.62%             ruby  ruby                           [.] vm_exec_core
     7.97%             ruby  ruby                           [.] st_lookup
     2.28%             ruby  ruby                           [.] vm_search_method
     1.78%  kafka_sysv_mq_p  kafka_sysv_mq_producer         [.] siftdown
     1.63%          splunkd  [kernel.kallsyms]              [k] isolate_migratepages_range
     1.62%             ruby  ruby                           [.] vm_call_iseq_setup_normal
     1.42%             ruby  ruby                           [.] newobj_of
```

##### 256k method cache
```
     7.12%             ruby  ruby                           [.] vm_exec_core
     3.95%             ruby  ruby                           [.] st_lookup
     2.49%          splunkd  splunkd                        [.] TailWatcher::findApplicableConfigs(Pathname const&, StatWrap const&, bool, std::map<Str, TailConfig const*, std::less<Str>, std::allocator<std::pair<Str const, TailConfig con
     2.07%           docker  docker                         [.] index/suffixarray.(*suffixSortable).Less
     1.65%  kafka_sysv_mq_p  kafka_sysv_mq_producer         [.] siftdown
     1.65%             ruby  ruby                           [.] vm_search_method
     1.37%          splunkd  libc-2.19.so                   [.] __memcmp_sse4_1
     1.26%          splunkd  [kernel.kallsyms]              [k] isolate_migratepages_range
     1.24%             ruby  ruby                           [.] newobj_of
```