Fixed errors in simple operations tests.

The tests introduced in the previous changesets were not really testing
anything :/ The TreeItem is just a regular class, and 1 or 100 such ops inside
a transaction make little difference - of course the transaction code is heavy
compared to just a simple assignment op. Also, the enumerables used as loops
were not enumerated.

Fixed these, and added tests for Modify to compare it with Assign.

The results are much more realistic now. The additional operations do incur
an expense. Additional ops are much less expensive than the first one, of course.
But 99 additional ops packed a big punch. Must look into improving this.
Also, the difference between the Modify and Assign transactions is very big.
Assign must either be optimized, or made non-commutable, with a special
CommutableAssign added as an option when commutability would be needed.