Interleaved tests and support infrastructure for it.

Test the behavior in the presence of multiple threads. created thread classes that aid in testing this multi thread scenario.
Make sure the read/writeability of the map during and after a transaction works. Make sure aborts do the right thing
Also created mutable boolean to aid in the handoff from one thread to the other.
Add gitignore