Use `\cli\prompt()` instead of reinventing the wheel

See https://github.com/wp-cli/wp-cli/pull/673#issuecomment-22938858
Support for repeating positional arguments
Better use of `\cli\prompt()`, which requires a default argument if the prompt is to be optional
Add support for prompting `--flag`
Support for generic arguments