Don't code and drink.
If no context class loader, use this class's loader.
Alter singleton scripting container logic to not teardown on GC.

In JRuby 9k, tearing down a runtime will (correctly) flush and
close all still-open IO streams. This includes stdio, with the
effect that all stdio streams on a runtime are closed and unusable
after a teardown.

The SINGLETON scope for ScriptingContainer uses a single, static
global runtime for all container instances. Previous logic was for
a ScriptingContainer to tear down the associated runtime at GC,
which resulted in subsequent SINGLETON containers seeing a runtime
with stdio closed. This led to EBADF errors appearing in some
embedding code.

This change modifies our logic in the following ways:

* A singleton container will not tear down the runtime on GC
* If the global runtime is torn down, we will clear the global
  runtime so a new runtime will be created for future calls.
[Truffle] Disable printing of Java exceptions, as some of them are normal and it will get noisy.
Make sure both push and pop honor exception-propagation logic.
InterruptedException rarely (never?) has a message.
fix problem with rake maven:dump_poms [skip ci]
[Truffle] Convert all source to ASCII until we fix offset bugs.
[Truffle] Fix off-by-one in String#[].
[Truffle] Include specs for core library classes we have implemented.
Use travis_retry for the whole build, since travis is flaky.
[Truffle] Tag some Math specs that weren't for some reason.
[Truffle] Panic method.
[Truffle] Remove Struct - we'll implement it in Ruby.
[Truffle] Implement some Math methods.
[Truffle] A couple of Kernel methods stubbed.
[Truffle] Option to print required files.
[Truffle] A couple of Module methods.
[Truffle] Add a Java backtrace to panic.
[Truffle] When classes and modules are reopened they aren't looked up using full constant lookup.