Fix high memory usage issue.

Originally, in order to return an iterator from `find()`, the key used
to get to the node was also stored in the node, meaning that inserting
a sequence of with n elements would result in allocating n*(n+1)/2
elements along the path. To aleviate this, the sequence is stored in
the iterator.
Whitespace cleanup. Switched to smart-tabs-mode.

smart-tabs-mode uses tabs for indentation and spaces for allignment.
Updated README.

Now includes notes on propogation inserts.