Fixed JavaThreadPoolExecutor queue bug when minimum pool size is zero.

Fixes #182 

The constructor was based on introspection of Java objects. Specifically this code:

```ruby
pool = java.util.concurrent.Executors.newCachedThreadPool #=>  <Java::JavaUtilConcurrent::ThreadPoolExecutor:0x3d36e4cd>
pool.queue #=> #<Java::JavaUtilConcurrent::SynchronousQueue:0x525b461a>
```

I copied this behavior without reading the documentation of [SynchronousQueue](http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/SynchronousQueue.html). In retrospect, it is clear that a synchronous queue, which always blocks and has a fixed size of zero, is not the behavior we want.