Add edit capability to `ember init`

* This has been added to edit-file-diff model in order to more easily
* abstract when `ember update` is a thing

When you run `ember init` a new option is given.  If you select it the
following events take place:

1. A tmp file containing the .diff of your file as compared to the
blueprint file
2. A child process is spawned with whatever command is set to $EDITOR
with an argument of the above tmp file path
3. On the 'close' event of this child process the diff you've edited is
applied to your file
4. the tmp file from step 1 is removed
5. normal process resumes
Handle flags on $EDITOR

This is for editors like sublime and text mate that will by default
launch and resume execution of io.  In these cases it is usually
reccomended to use the `-w` flag and to set those flags on the $EDITOR
variable in your rc file.

e.g

$EDITOR=mate becomes $EDITOR='/usr/local/bin/mate -w'

This updates the childProcess spawn to trim arguments and pass them as
appropriate.

In the case of mate -w

editor is set to `mate`
editorArgs is set to ['-w']
Add error handling for unappliable patch
Add Changelog entry.
Merge pull request #1000 from rondale-sc/ember_init_edit

Add edit capability to `ember init`