Folding Methods

This is a variant for implementing folding methods for RASequence (#297). Unlike the proposed API, this one more closely matches the folds done in other languages like haskell including support for a lazy rest.

I've also implemented the any function with this type of fold as a proof of concept as well as very basic tests for both foldr and any.

What do you guys think of this?

P.S. The comment for the fold function is terrible, I'll definitely fix it up to make it more understandable.