Experimented with enumeration on sequences.

Decided to implement IEnumerable as reduction to
list eventually, because the explicit implementation
was slower. Also added the AsArray function which
reduces a sequence to an array.
Added tests for splitting and insertion to sequence.
Added visualization for finger trees.
Intermediate commit in changing SExpr.List to use sequences.

The SExprPath does not compile yet. Other classes have
been fixed.
Fixed the tests of SExprPath also after changing S-exp lists to sequences.

One test is still failing, and needs to be fixed.
Fixed the last part of SExprPath.

All test are green now.
Forgot to uncomment the test, but it worked anyway.
Rearranged files and redesigned the function model.

Gave up on idea of having custom function classes. Rather
keeping the interoperability with C# than doing it the
"proper functional" way.
Added Either<T. U> class.

This is a type that contains either first or second value, but not both.
Added lazy lists.

Also refactored the list query methods to the ISequence interface.
Continued refactoring collections into interfaces.
Spent a monadic Saturday :-)

Continued moving functionality to ISequence<T> interface.
Made it a true monad by implementing the Linq extension
methods. The lazy list is a way cool data structure, by the
way. I think I'll use it everywhere from now on.