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.
It seems like at some point in the future that this call will move to the loop that actually executes things, rather than be here where we're parsing input.  (Just articulating my understanding here)