Changed terminal, output stream and shell interfaces for better handling of terminal output types
Significant revamp of the shell implementation and interfaces to make it more generic
Allow println() of arbitrary objects in the API, so GUI can keep the object rather than a String representation of it
First working version of GUI shell