Performance improvements.

Added a test, taken from Ayende's blog, which tests the speed of a sequence
of batch writes on a dictionary (SequentialTests.cs). The performance was poor,
100x slower than the ordinary Dictionary (e.g. in Ayende's tests, MS immutable
collections are 30x slower). So, did some improvements:
- trimming is done every 16 transactions, not started after every one (the bigger
that number, the bigger the list of copies gets, so it gets counterproductive),
- dictionary maintains copies the same way Shield does, enabling it to do trimming
much faster.
In the end, it's now 70x slower than Dictionary, which is still not very good.
Profiling indicates a lot of time is spent on searching through the _dict (for
updating the count, every setter looks into the dict) and through the _writeStamps,
so I'll look into that.
On the plus side, reading (out of trans) is fast, just 2,7x slower than the
ordinary Dictionary.