Turned the Mark into a value class and added Cursor as a factory class

.. since changing a Mark makes no sense outside of Scanner
Merge pull request #76 from rogernorling/cursor-mark

Mutable Cursor, immutable Mark