ui.prompt with inquirer

I pulled this out of my blueprint refactor PR.

This addresses https://github.com/stefanpenner/ember-cli/issues/316 kind of. The point is that all user interaction (input and output) should go through `UI`. Please add some comments before I merge this.

- [x] Cool interactive prompts via inquirer
- [x] Prompts now go through our `UI`
- [x] `ui.prompt()` conveniently returns a promise if called with just one argument
- [x] `MockUI` now inherits from `UI`
- [x] `MockUI` now cocatenates everything into a string. Previously `ui.write('hel'); ui.write('lo');` and `ui.write('hello')` made a difference in tests. Not cool :)
- [x] All tests work on windows

I still think that we should refactor the blueprint, but fixing `ui.prompt` had a higher priority.