ENYO-2955: change pre-version scheme from `M.m.p-X` to `M.m.p-pre.X`

This is less confusing than the previous scheme & it is also a format
supported by http://semver.org & NPM.

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2955: shells is a dev-time dependency, not run-time

…and it should remain this way!

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2955: skeleton for `scripts/release.js`

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2955: implement `release.js` `pre-dist` & `post-dist` operations

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

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2995: add `--pre|-r` and `--rel|-R` options & document them

Also update `CONTRIBUTE.md` to use `./scripts/release.js`.

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2955: ignore `ide.log` & lexicographically sort Git excludes

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
ENYO-2955: review comments: remove the hidden `release.js test` command

Enyo-DCO-1.1-Signed-off-by: Francois-Xavier KOWALSKI <francois-xavier.kowalski@hp.com>
Merge pull request #497 from enyojs/ENYO-2955

ENYO-2955: ares-ide release helper tools (aggregate tasks & handle version format).