Resolves #186 and #210

This is a rather large edit because it required a lot of work to track back
to the source line where an opcode came from.  See the comments for
issue #186 for the majority of the explanation.

Issue #210 was solved along with this because the stack trace work I was
doing is what discovered problem #210.

This is STILL NOT well tested yet.  I wanted to get what I had in place so that others like @erendrake could pull the code and give it a try.

Well you could remove the ambiguity with calling it InstPtr or something.  I just don't like it when identifiers start consisting of a long phrase of 4-5 words in it - the ugly length of the term seems to ruin any win you get from explicitly spelling things out, because the sheer length of it becomes its own form of obfuscation as it makes it harder to see the structure of math expressions that contain it.