Earlier, when the user pressed the `Esc` key, nothing would happen as
`ui::Input` would just pass the event on to the prompt. Now 2 other
actions can be specified.
`OnEsc::Terminate`: returns an `Err` which will propagate upwards,
essentially cancelling the `PromptModule`
`OnEsc::SkipQuestion`: returns `None`, showing that the question has
been skipped
Implements #6
Earlier, the default value would just be shown on the side at all times.
This is even if the default will not be selected which can be
misleading. This change shows the default as greyed out text in the
input itself. It also allows pressing 'Tab' to make the current input
the default if the current input value is the start of the default.
Implements #4
`validate_on_key` is a function that can be supplied by the library user
to show the input in red if the it doesn't pass some validation. It
works for the input, int, float and password prompts.
Implements #5.