Adds support for limited version of managed blocking that aborts if ther...

DO NOT MERGE

Proof of concept for doing managed blocking for ThreadPoolExecutor,
inspired by an excellent discussion between @huntc, @hseeberger, @richdougherty and myself.
An alternative that would be wait-free (on JDK8) is to just subtract one and inspect the result to determine whether to run or throw (and finally increment).