Break out `SharedJRubyEnvironment`, `SharedRunner`.

This lets us share `JRubyEnvironment`s and askari runner instances
across region observer instances.  Things are reference counted with a
gross lock to eagerly clean things up.

Reference counts for jruby environments are tallied by the containing
jar name. Runners are tallied by the jar name and the askari
application name (the `askari.name` parameter.)