Fixing #62 - Multithreaded test not working

I've got some code which fixes Issues 47 and 62.  I've done a bit of a refactor of the handling of the context in the Interceptor, this means we have one place that looks after access to the collections, and therefore one place for the locking.  Hope the whitespace and line endings are all intact, took longer than the code changes to get it this neat!

None of the repos for google code issue 247 fail anymore, they all progress past the collection access problems and either slowly finish or hit out of memory exceptions that were already there.