Initial implementation of "taskFromStreams" gulp plugin

And I already responded that I do want the exception to be thrown in such case.

There are two ways of "implementing" your scenario, in neither one should the task be completed more than once:

#### a. Single task

```js
gulp.task("go", taskFromStreams(function () { return [
    gulp.src("*.js"),
    jslint.run(),
    jslint.report({ emitError: true }),
    minify()
]; }));
```

- Read error: as soon as any file fails to be read, all the streams will be ended and task fails (`gulp.src` will emit `error` event)
- Linting error: as soon as any file fails to be linted, `jslint.report` will emit `error` event thanks to `emitError` event; all the streams will be ended and task tails
- Minify error: who cares as it's the last stream in the chain :wink: 

#### b. Multiple tasks

```js
gulp.task("lint", taskFromStreams(function () { return [
    gulp.src("*.js"),
    jslint.run(),
    jslint.report({ emitErrorAtEnd: true })
]; }));

gulp.task("minify", ["lint"], taskFromStreams(function () { return [
    gulp.src("*.js"),
    minify()
]; }));

gulp.task("go", ["minify"]);
```

We are trading off the need to read files multiple times (once in `lint` task and again in `minify` task) for being able to lint all files together before attempting any minification.

- Read error: as soon as any file fails to be read (in either task), all the streams will be ended and task fails (`gulp.src` will emit `error` event)
- Linting error: after going through all the files, if at least one failed to be linted, `lint` task will fail, which will prevent `minify` task from running
- Minify error: who cares as it's the last stream in the chain :wink: