Console: More clean up work to try and prevent coding errors from getting cmdQ and lineQ out of sync (that's very bad!). We now use functions to handle each request and the top level loop does the queue management. In short, don't mess directly with the queues unless you know what you're doing!
Also added in a ExistingConsole class (extends Console) which can be used to connect up an existing console process rather than a new one with most of the functionality of the Console class. (Basically you can't start a new console)