Re-implemented TenantScope using an ExecutorService so that we can catch
and rethrow the real Exception/Error if one occurs in the passed-in
Block.

Other minor changes.