Laziness in action!

Lazy chained methods:
step() - Consumes current method in chain
stepBackward() - Decrements then consumes method in chain
walk() - Invoke current method then increment chain
walkBackward() - Decrements then invokes current method 
resetChain() - Goes to beginning of chain
endChain() - Goes to end of chain
invokeAll() - Evaluates result of entire chain
invokeRest() - Evaluates result of remaining methods on chain relative to current position in chain
hasStep() - Checks if any methods can be consumed from current position in chain
countSteps() - Returns how many methods can be consumed from current position
hasStepBackward() -> Checks if any methods can be consumed by decrementing chain
countBackwardSteps() -> Returns how many methods can be consumed by decrementing chain
hasChain() - Checks if any methods are available to be evaluated.
countChain() - Returns how many methods are available to be evaluated


Lazy iterator:
Type: Dollar.Iterator
next() - Invokes action on next element in collection (current then increment)
previous() - Invoked action on previous element in collection (decrement then current)
cycle() - Invokes action while cycling through elements in collection 
cycleBackwards() - Invokes continuously while decrementing through collection
toFirstObject() - Moves position of iterator to first object
toLastObject() - Moves position of iterator to last object
endIterator() - Moves position of iterator to final position (next will return nil from there)
hasNext()
countNext()
hasPrevious()
countPrevious()

Made changes to reflect new syntax in Beta3 release
Made changes to flatten() and initial() as they didn't work as intended for me.
Good name for class to keep with the theme but let me incorporate your changes in one of my branches and I will create a new pull request and include you in the review.