Core dump on syntax error

Added the printing faculties for smlData, symbolTable, and line flags
whenever a syntax error crops up. Glad I did because the Symbol table just
had 17 copies of the same entry : sy53-line-@ic12. That is particularly
odd because the core dump revealed that 3 & 5 were stored in sml data. Is
that possible without a symbol table entry? Probably. I will need to check
harder whether symbolTable really is this bad or the printing is corrupt.
Fixed symbolTable

Lots of changes, most important: symbolTable initialized with a list
comprehension rather than multiplied reference. I swear, I tracked every
sinning reference to symbolTable, currSym and thought about making the
tableEntry members private to keep the hidden danger from 'looping currSym
back to 0.' Tried installing pyDev to watch execution, but it didn't play
nice with my VStudio built version. Might add python to sys path, not just
user path.

I did a bunch of changes in various areas (23-ish notes in front of me).
However, listing each one isn't necessary because a) you can see it
through diff or on github; b) I'm going to merge these branches since I
got it to work without printing every single line. Or, I could merge the
changes into main (so it works), but make another commit so this branch is
actually verbose and main is silently useful.
Canonical spec satisfied

(Will merge with main shortly) This implementation satisfies the standard
Simpletron - Simple Compiler pair outlined by Deitel. While I will make
improvements suggested at the end, these are clearly optional. As such, I
will commit them after or even on different branches where the behavior is
markedly different.

The most significant change here has been a move back to the official
Deitel isa machine codes. I tested out Bob Coa's spiffy gui version and
felt frustrated that it rejected my example sml. After spouting that he
had 'violated the most fundamental interface to the project,' I remembered
that I had deliberately ignored their numbering because reading
uninitialized memory cells would crash the vm rather than halt it. I
changed that up right quick, though the cpu will treat a 0 instruction as
halt as well as 43--.

I finally pulled the execution code into a dict and run it with that queer
python pattern of a function-stuffed map. The form is much cleaner. I also
pulled the equality specific code out of conditional(), into its own
equalityConditional(). For the grand occasion, testCompiler now expects
the simple program file name in the console argument. Similarly, it will
ask whether to immediately load & run the sml version through simpletron.

As I was casting about frantically before learning that a list
comprehension initialization saved me from an overly sensitive symbolTable
list, I inserted an extraneous prepInstruction in goto(). That produced
the aberrant zero between the input and goto in monkey. I should update
monkey to test every appropriate instruction.

Finally, I will certainly implement some of Deitel's suggested
improvements: strings, subroutines, for loops. I am a bit stymied by
optimizing the mathProduction() as I need to remain aware if the temporary
saved value is the first and whether I can skip where y = y -... The
interpreter is similarly opaque. It sounds like a one file hybrid of cpu &
the compiler's parser, which is weird and not entirely clear from the
description. I'm fairly sure that I'll be enliterating the version, as the
math optimization isn't - strictly speaking - necessary. Again, I should
ask.