Extract input from tty in InputDevice::TTY

Preparing to support input from a pipe
Support for input from pipe
Refactoring: simplified constructor
Refactoring: better names
Return quit command instead of throwing :quit

During an interactive tty session the readline library catches `<C-D>`
as the end of the session, I replaced the `throw` and `catch` of `:quit`
symbol whith a more coherent `quit` command, so in the end, in an
interactive session, pressing `<C-D>` it's like execute the command
`quit`