IR: Two more helpers markVariable{,s}Live
Fix JRUBY-6527

Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable

This is just another case where MRI mixes WaitWritable into an
errno exception at runtime, so I added another subclass that does
it ahead of time and construct that in 1.9 mode.
IR: computeScopeFlags was always marking scope as usesZSuper to a previous refactoring mistake I made.  Now recv_closures are getting marked dead more often than never :)
IR: Fix more callers of getClosureArg (this should not change anything behaviorally, but it looked goofy before)
Fix JRUBY-6528

Socket#connect_nonblock and IO::select appear to be misbehaving?

When selecting for "write" in Ruby terms, we need to select for
both "write" and "connect" in Java selector terms. On most impls
of selectors, there's only "read" and "write" to be used for
read/accept and write/connect. We were only registering interest
in the Java "write" event", but the JDK knows we're doing select
against an unconnected socket, so it's looking for "connect"
interest. It wakes up, because at the native level "write" and
"connect" are both just "write", sees that we're not interested
in "connect", and we don't end up adding anything to the outgoing
writable array.

By modifying "write" selection events to do write + connect (and
fixing "read" selection events to do read + accept) the given
script works as expected.

This code still needs some improvement and refactoring, but I'm
closer to understanding how to do it right now.
Additional fixes for connect_nonblock and IO.select.

* Move finishConnect logic into select's write ops handling
Add error message for Socket#accept.

Because we can't support both client and server connections in
Socket, we have added ServerSocket for the server side. To make
this easier to find, I've added an impl of Socket#accept that
mentions ServerSocket and links to an informational page on the
JRuby wiki.
Fix throwable spec for now-noop Throwable#set_backtrace.
More improvements for ServerSocket and accept/connect.

* Add accept_nonblock to ServerSocket
* Add ServerSocket error to Socket#listen
* Add bind/listen warning to ServerSocket#listen
* Refactor ServerSocket#accept a bit
Remove explicit 1.9 restriction from Fiber methods.

Fiber is still not available in 1.8 mode, but this will make it
possible to hack it into existence.
Add nonstandard jruby/fiber and jruby/fiber_ext for 1.8 mode Fiber.
First pass refactoring RubyBasicSocket.
IR: First step towards configurable compiler passes
IR: Humble start to compiler passes with deps
IR: Make DominatorTreeBuilder add CFGBuilder dep via compiler pass and remove from IRScope
IR: Make CFG linear depend on CFG Builder (and fix missing break issue in CompilerPass)
Get 1.8 specs green again.

* Don't clear ThreadLocals on exit; they're expected to be there.
** Pooled threads will dissociate themselves from RubyThread anyway.
* Force JRUBY_OPTS to have --1.8 or --1.9 for subprocesses.
* Raise ArgumentError for bad File.*open modes.
Don't use JRubyClassLoader for loading built-in fiber logic.
Fixes to almost make 1.9 spec run green again.

* Implement IO#getc/chars/each_char/readchar properly
* Fix bad boolean logic for # strings in String#inspect
Fix JRUBY-6534: Broken block-local vars in 1.9 mode

* Simple typo in the parser.