Get some hardware details in travis.
Mark unexposed members as private.
Extract `ClasspathJar`, that gets paths on the jar containing a class.
Break out `RubyRegionObserver.SharedState`, use it to share jrubys.

Now all `RubyRegionObserver`s in a region observer will reuse
the same `JRubyEnvironment` (and runner) so long as they agree on the
table and coprocessor name (`askari.name` parameter.)
Add some logging and play with clearing the classloader cache.

We learned that we need to reference count across coprocessors sharing
the same jar if we're going to clear that cache on disposal.
`DSL.reset_application` resets the `application` global back to `nil`.

This should allow creating multiple runner objects, for different
region observers, within the same `JRubyEnvironment`.