Implement lexer from purescript in purescript

This is still a work-in-progress. 

I need to figure out how to handle multiple modules per file, without breaking the indentation rules.

I think the solution might be to just disallow multiple modules per file. I don't think very many modules use that "feature" anyway, except for the Prelude.