Fix line number handling in line directive callback.

The line argument passed into the lineCallback function is the
literal value of the first argument of the #line directive.
lastLine in DoPreprocessing() should be updated taking into
consideration the different definitions for #line between specs.

Add a test to reveal the bug.
diff --git a/Test/preprocessor.line.frag b/Test/preprocessor.line.frag
new file mode 100644
index 0000000..0b7ac76
--- /dev/null
+++ b/Test/preprocessor.line.frag
@@ -0,0 +1,4 @@
+#version 310 es
+#line 1 2
+#pragma something
+void main() {}