ShieldedDict now implements IDictionary.

It now provides all the civilised dictionary functionality. It is somewhat slower on bulk
operations (TreeTest), but the Bet Shop test is faster, since it no longer needs two
collections for tickets. Iterating over the dictionary will conflict with any transaction
that adds or removes items from the dictionary.