Eng 7325 sqlcmd refactor squashed

This is intended to be a bug-for-bug compatible refactoring of SQLCommand.java, setting up for future changes including ENG 7325 dynamic setting of error handling.
It standardizes most if not all the coding style in SQLCommand.java.
It more cleanly splits out interactive input processing from non-interactive input processing and execution of directives.
It simplifies one test API and eliminates some dead test code.
It adds lots of TODO hints about known issues.
This could use a Javadoc header comment that describes that this method does.  I wasn't sure if it returns a list of all waiting input lines, or if it just grabs the next command.

Having browsed the code a bit, I think that it returns the next batch of queries to be executed (where those queries have been auto-split by parseQueries).  Any directives have been executed as side-effects.