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.

As long as process command is never called anywhere where you don't want to add the command to the history, that's fine, but… remember the effect this will have: a user types at the terminal.  While they do that, RemoteTech calls ProcessCommand, and the result is that RemoteTech's command is now in the terminal's up-arrow history.