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.
This is called when the thread starts, so it increments the number of available threads. No need to check because we will never overflow since we decrement when the thread exits.