Sequence handling for FlattenedSequence

When you create sequences recursively you end up with recursive sequences. Consequently, it can be useful to flatten sub-sequences as well as arrays when calling to flatten(). This is a simple change to the FlattenedSequence implementation of each which enables this behavior.

Thanks for a neat library.  Also, you might enjoy checking out clojure or other lisp sometime if you haven't already!

- Alex