WIP scanner rewrite with better definitions, state, error handling
Defined Scanner State, implemented operations setMark, removeMark and readCharacter
New scanner mostly working, but not quite
Some tests