INT-3433 commit

INT-3433: Fixed NIO deadlock (or timout if the CallerBlocksPolicy is used) with Bounded ThreadPoolTaskExecutor.

JIRA: https://jira.spring.io/browse/INT-3433

I have signed and agree to the terms of the SpringSource Individual
Contributor License Agreement.
I agree that we can replace `CompositeExecutor` with two `taskExecutor`s. I'm not so sure about `CallerBlocksPolicy` though. In my opinion for the assembler thread pool it's definitely better to use `AbortPolicy`, but for the IO thread pool we can only use either `CallerBlocksPolicy` or `CallerRunsPolicy`. `CallerBlocksPolicy` might be preferable, because it can't block the IO Selector for a long time and you can specify a delay your application can tolerate.
It would be good to hear what @garyrussell thinks.