Add minimal support for lazy evaluation to chaining syntax #274

These are methods that currently support lazy evaluation: `map`, `filter`, `reverse`, `drop`, `dropWhile`, `dropRight`, `dropRightWhile`, `take`, `takeWhile`, `takeRight`, `takeRightWhile`, `first`, `last`, `initial`, `rest`, `value`.

They're implemented into chain syntax.

* There is no documentation yet
* It doesn't pass tests for RingoJS, Rhino, etc... builds yet
It is lazy:
    LazySequence.prototype.reverse = function() {
      this.dir *= -1;
      return this;
    };