Fix MakeBalanced method to correctly balance tree after Insert is called

When ImmutableList<T>.Insert adds a node, MakeBalanced is called to
rebalance the tree.  However this rebalance is not correct when the tree is
right heavy by > 1 and the right node is left-heavy by 1, and vice versa.

Also added a minimal test to expose bug, and modified RandomOperationsTest
to verify the balance of the tree after each operation

Fix #103