Added Question trait and Input mock classes

The Input mock classes allow us to fake user input on the CLI, so we can
fully test the methods in the traits like Question and Confirmation
easily.