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
Would it be possible to make all chained called deferred until `.value()` (or implicitly `value`'ed):
```js
var wrapper = _(something).nonLazy(....).anotherNonLazy(); // nothing done, methods queued.
var result = wrapper.value(); // now methods are called one after another
```
This way regardless of the internal opts things aren't executed until an implicit/explicit `value`.