Use an actual Ruby instance variable in Pathname

* Fixes #1460
* So we are sure to be fully compatible with MRI
* #instance_variable_set must be reflected and redefining it on Pathname seems
  a very bad idea (even though Pathname is immutable without #instance_variable_set)
* We need anyway to add the instance variable for subclasses which access @path
  directly
* An alternative would be to define a YAML deserialization hook
  but we may face other compatibility issues
Implement jar directory snapshot caching.

This improves jar globbing performance by about 4x on a simple benchmark.

For a jar containing 9156 files, 5.times { Dir.glob("file.jar!/**/*") } is:

1.7.10: user    1m24.332s
HEAD:   user    0m19.604s
Made the jar caching respect changing of jars on the filesystem.