yes no prompt with a default

It is like the `agree` method, but follows our naming conventions and more importantly, it allows for a default.

```
prompt? # old way using agree()

new:
prompt? (Y/N): |Y| # using ask_yn
```

While I'm not thrilled with the new format, it is the way highline works. So it is the simplest in terms of code and consistency.
@kbrock I assume "follows our naming conventions" means we're returning a boolean but not using a predicate method name, such as ask_yn?
I'm fine if we're sticking to the convention with the intention of normalizing them to use predicate method names later...

If NOT, I'd suggest we name this `ask_yn?`