Regarding that bug with the lines getting mismatched, I am leaning towards the explanation that the mix up has to
do with quirks in the saving process.  I can't find a general case, in fact I'm convinced that the bug hasn't
really anything to do with the inputs we give it.  If i just keep giving it just a bunch of simple addition
operations over and over it would eventually give me the bug.

I'm not certain if that's what's really happening or not, and I have no idea how saving actually works, but in any
case I think I've found a way to fix it.  It's pretty simple, I just continuously keep a track of a line's line
number by means of adding the "lineNum" field to the Line object.  Then I make sure that when the answer gets put
into the response, the answer gets assigned the correct line number.  Previously, you were relying on the index
number of qaPairs and simply assuming that the index of the qaPair+1 must be the line number.  This is problematic
because if, for some reason, qaPairs isn't accurate, then the line number won't be accurate either.

This is a bit of a hack because although your worksheet will be fine for as long as you don't refresh, when you
refresh, you're liable to loose a good proportion of the lines, possibly all but the most recent line.  This makes
sense given my theory that this whole business is being caused by save errors.