ThreadPool fixes

These are changes that address problems exposed by the spec cleanup in #113.

* Like its ruby counterpart, the jruby `shutdown` was throwing away stuff already in the queue (i.e., it was acting like `#kill`)
* `JavaFixedThreadPool` was supposedly based on the java executor, but for no obvious reason implemented its own initializer that never called `super`. Changed to use the much-more-robust initializer in the executor.
* `RubyFixedThreadPool` was setting default options using `Hash#merge` but had it backwards (i.e., default options were always overriding explicitly-passed-in options).
* The constant `DEFAULT_THREAD_IDLETIMEOUT` wasn't actually being used as a default. 
* Added code to make sure `min_threads <= max_threads`