First version of finger tree done.

Phew! The first draft of finger tree is written in one day
and it compiles. Too tired to start testing it.

This version does not contain the monoid stuff. It has just
the tree manipulation operations.
Added the IReducible<T> interface...

..and implemented it for NOPList, array and FingerTree. This
is one of the most powerful and elegant functional constructs
I have added so far.

Also added basic tests for finger trees, and it bloody well
works. Pretty amazing for a first time run. The finger tree
data structure is so well typed that it is hard to add bugs
to the implementation :-)