Move InlineCache to be a GC'able object

This allows for future access from Ruby land and for replacing caches on
the fly with the new type hierarchy idea of different types of caches
for different types of method calls / specific methods calls worth a
specific cache.
Rename MethodCacheEntry to InlineCacheEntry

This follows the same naming convention as used for ConstantCache and
ConstantCacheEntry. Also moves the definition for the entry into
inline_cache.*