Shrink RubyThread.Event object in prep for a proper queue.
Add new, allocation-free callback path for blocking operations.
Improved impls of Queue and SizedQueue.

* Queue is now based on JDK LinkedBlockingQueue
* SizeQueue is now based on JDK ArrayBlockingQueue
* Using the new RubyThread task logic
Early start on handle_interrupt logic.
Implement thread interrupts in the same way as MRI.

In order to support Ruby 2.1's ability to disable thread
interrupts (async exceptions, etc), we need to match their
mechanism of dispatching those interrupts. This is a first attempt
to mimic the MRI way.
Fixes to Fiber#alive? logic.
Raise immediately if target thread is current thread.
Minor cleanup.
Shrink RubyThread.Event object in prep for a proper queue.
Add new, allocation-free callback path for blocking operations.
Remaining fixes to get specs green with new interrupts.
Fix up botched merge.