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 is a concession to a backward compatibility which I was trying not to break (yet) in this refactor commit.
For now, the semicolon at the end of a FILE directive in particular has documented "execute immediately" semantics, so this needed to be captured at least before the FILE directive processing overwrote line.
This too shall pass.