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 when the process encounters a file it needs input from user.  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
i was just going to ask about this^  Can I assume you tested that this PR doesn't break our windows support?