Front-end: Fix known crashes by early exit on error (issue #29, issue #34, issue #35).

Added -C option to request cascading errors.  By default, will exit early,
to avoid all error-recovery-based crashes.

This works by simulating end-of-file in input on first error, so no
need for exception handling, or stack unwinding, or any complex error
checking/handling to get out of the stack.
diff --git a/Test/runtests b/Test/runtests
index 3bf03fb..ae7ed45 100755
--- a/Test/runtests
+++ b/Test/runtests
@@ -22,15 +22,15 @@
 # reflection tests
 #
 echo Running reflection...
-$EXE -l -q reflection.vert > $TARGETDIR/reflection.vert.out
+$EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out
 diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1
 
 #
 # multi-threaded test
 #
 echo Comparing single thread to multithread for all tests in current directory...
-$EXE -i *.vert *.geom *.frag *.tes* *.comp > singleThread.out
-$EXE -i *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out
+$EXE -i -C *.vert *.geom *.frag *.tes* *.comp > singleThread.out
+$EXE -i -C *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out
 diff singleThread.out multiThread.out || HASERROR=1
 
 if [ $HASERROR -eq 0 ]