Remove locking from the request path with shared pools (TORQUE-1200)

This removes several sources of locking that were present in the
request path with shared pools - locking when borrowing / returning
Ruby runtimes, locking inside JRuby from initializing RubyIO
instances, and locking from JRuby when retrieving the JRubyClassLoader.

With these changes I see about a 50% improvement in top-end
performance for basic Rack apps. Most applications won't see this
performance boost, since our locking probably wasn't the bottleneck,
but for high-throughput and high-concurrency users this should speed
things up nicely.