Apply color to the #ask method.

This changes the arguments of #ask_simply and #ask_filtered, so it may be
preferable to push the call to #set_color into #ask_simply to maintain
backward compatibility. However, since these methods are private and not in
a class that is typically overridden in client code we can probably change
the signature without causing too many problems in client code.
Use Readline when it's available.
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.