SQLCommand.java cleanup: whitespace, a few redundancies, a regexp bug

Mostly this is abut standardizing whitespace for readability.
But I had trouble holding back, so you will also find:
   Places where I simplified the code to avoid anti-patterns like:
-- using containsKey to double the number of hash lookups,
-- needlessly avoiding the "for (type element : container)" idiom.
-- other cases of needlessly re-evaluating expressions like array element accesses, regexp match construction and execution (like "matches" followed needlessly by "find"), etc.

I think I MAY have found and fixed a known minor regexp bug -- at the least I made the code more consistent -- by replacing find with matches when looking for a prefix match with explain / explainproc.

I left lots of ugly whitespace in getQuery because I think that it would be easier to rewrite it as 2 functions 
getQuery(true) --> getInteractiveQueries [ slightly simpler for not having to deal with batch mode ]
and getQuery(false) --> getBatchQueries [ MUCH simpler ]

And there's still lots of room for improvement, but I think this is a good start.

If any of the actual logic changes seem the least bit ambitious, I'm willing to back them out for now just to get the whitespace changes in.
I'm unclear on the difference between `matches` and `find`, even after reading the Java documentation.  My impression is that the former will find all the matches in the whole string, whereas the latter just looks for the next one.  Would `find` be more efficient in this context?