Replace line editor conditional with polymorphism.

This refactoring paves the way for adding more advanced Readline
functionality, like tab completion and selective addition to history.
Make the #ask method respect padding again.

Moving to Readline meant that #ask no longer uses #say. I missed some of the
message preparation in #say in the original change, specifically padding
support.
Pass #ask option on to LineEditor.readline

This will allow for various editor-level customisations based on the
options, and for the set of #ask options to be expanded to include options
that specifically effect the line editor.
Support Readline history.

* By default, the response to any #ask call is added to the history.
* Pass `:add_to_history => false` to #ask to avoid adding to history.
* #yes?, #no?, and #file_collision? have `:add_to_history => false` by
  default.
Support Readline tab completion.

When the input is restricted by the :limited_to option, support tab
completion for the options.
Fix regression: Color option only partly applied.

When using the color option and the limited_to or default option, the colour
was not applied to the additional part of the question.
Add path completion to Readline.

Arguably the most common use for tab completion is paths, so let's support
it! Calls to #ask can now take `:path => true` which will enable tab
completion relative to the current working directory on systems that have
Readline support.
Update documentation.