Add backpressure to InMemoryExchange
Run all tests in parallel by default

Annotate all tests that use @BeforeMethod with singleThreaded=true
Remove potential deadlock with broken connectors

Replace synchronized lock with a custom lock with timeout support

For close and updateSource stage change and then attempt to acquire
lock.  If lock is acquired, process change; otherwise lock holder
will process change before releasing lock.

For close, if lock can not be acquired, interrupt lock holder.