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.

You are right.  It didn't show up because Script.cs is overridden.  It doesn't actually do any compiling - it just sets up the structure of what the method calls for a script compiler in the system should look like (perhaps it was in anticipation of being able to compile things that weren't kosScript?).  The actual derived class of this that really does do the compiling is KS/KSScript.cs, and in it, this method is overridden.  (if you look at what it originally did, it just returned an empty program list as a dummy placeholder expected to be overridden.  I'd be happy if you want to turn this into an abstract method and have no dummy implementation for it at all at this level, as a more clear way to communicate that it's meant to be overridden and doesn't do anything useful in the base class.)