Prefer more threads than deeper queue
ThreadPoolExecutor does not start spawning new threads until the
underlying queue's offer() method return false. This means that we would
completely fill the queue before kicking off more threads.
This patch introduces a ForwardingBlockingQueue, which always returns
false from offer(), thus forcing the threadpool to expand. The policy
then uses put() to schedule (or block on scheduling) the tasks.
Change-Id: I341f0ca7061f6b76ae1f3e049b12704f35140633
Signed-off-by: Robert Varga <robert.varga@pantheon.sk>