ENYO-2935, ENYO-2999: catch Zalgo & resume controlling Node I/O streams

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: fix `.jshintrc` to use node

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: implement local folders as (recursive) sources

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: improve testability & add first tests

- add new dependencies for tests

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: update NPM shrink-wrap

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2795: use `cp -R ...` to handle zip & folder sources instead of `mv ...`

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2795: appease jshint & travis

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935, ENYO-2999: try harder to catch Zalgo

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: fix traces

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: always filter-out dot files

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: update test suite

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
Merge branch 'master' of github.com:enyojs/ares-generator into ENYO-2935

# By Yves Del-Medico
# Via Yves Del-Medico (1) and yves-del-medico (1)
* 'master' of github.com:enyojs/ares-generator:
  ENYO-3090: Allow to remove a source with "type" set to "null"

Conflicts:
	ares-generator.js
ENYO-2935: be compatible again with Node.js 0.8

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: jshint: fix bad escaping

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935, ENYO-2044: fix _too many open files_ using `graceful-fs`

Also see:

* https://enyojs.atlassian.net/browse/ENYO-3061
* https://npmjs.org/package/graceful-fs

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: full async & zero-copy `ares-generator.js` (much faster)

* The list of file to be handled is now an `Array` of
  `{ name: xxx, path: yyy}` where `name:` is the expected output file
  name and `path:` is the location where the file is.
* When possible (move, rename, copy) changes are done on `name`,
  leaving the bits un-touched.
* File content edition is done on the bits referred to by `path:` using
  copy-on-write & operating directly on a temporary copy.

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: update & clean NPM dependencies

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: non-regression test suite (substitutions not tested yet)

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: appease jshint

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2935: fix substitutions

- add non-reg test suite for this too.

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>