Scanning: 1) rationalize end-of-input everywhere, 2) prevent infinite loop at end-of-input, 3) use positive chars.

Fixes issue #25. (char 255 aliased to -1 and missing tests for end of input).

1) All layers of input scanning now share a single EndOfInput value.
This avoids translation of it across layers of encapsulation.

2) Some places looking for end of line were not stopping on EndOfInput.

3) Use of "char" for the input made char values > 127 be negative numbers.
This allowed for aliasing of 255 to -1, etc.  This is fixed by using
unsigned char.
diff --git a/Test/testlist b/Test/testlist
index 0e619a3..797dca2 100644
--- a/Test/testlist
+++ b/Test/testlist
@@ -25,6 +25,7 @@
 cppIndent.vert
 cppNest.vert
 cppComplexExpr.vert
+badChars.frag
 pointCoord.frag
 array.frag
 array100.frag