Replace custom env variable parsing with proper shell execution

Because env parsing is unreliable at best, and executing the command
using child_process.exec and the proper env variables lets the shell
do its thing.

By using child_process.exec, we also get the benefit of allowing
quoted arguments and subshell execution like the following:

`web: sh -c 'supervisor -e "node|js|json" ./server.js'`

Previously the whitespace splitting wouldn't take quoted arguments
into account and the command would fail.

Signed-off-by: Evan Owen <kainosnoema@gmail.com>
Fix fs.existsSync for backwards compatibility with Node v0.6.x

Everything else seems to work fine with v0.6.x, and the package says
we should be supporting it.

Signed-off-by: Evan Owen <kainosnoema@gmail.com>
Ignoring colour changes in console logging
Ignoring VIM configuration and swap files in repo
Apply generated PORT to local env copy

This fixes a bug where the generated/dynamic PORT assignment was only working for the *first* process. The original code was writing to the shared envs and so for any subsequent processes/groups it would find the previous value and skip generation of the remaining ones.
Merge remote-tracking branch 'john/30-ignore-colours-when-trimming'