Feature and performance improvements...

Added descriptions to menus and commands, as well as "values" for arguments (which contain the description);
Renamed isKeyword to isSpecial (and the according JSON property from "keyword" to "special"), which is what it was all along - both empty arguments and keywords like "where" fit under this. If there's no "values" property on an argument, it's an empty one;
As part of the keyword/empty detection, a new parseCommand method is introduced, which takes the string to supposedly then parse as a command, which is typically an actual command, except during this detection when it's really an argument, but the method treats as if it was a command;
Only the first few responses are done with a regular expression against the prompt - the rest are now done against a string fetched from that initial exchange, giving significant performance improvements;