Implement the lexer

Since it's pretty much my first non-trivial piece of Scala code, more than one person may want to review this...

Fixes #19.
{nit} you could collapse these 4 lines into one:
```lexer.findings.head should equal (new Lexer.UnclosedCommentError(1, 3))```