There were some previous bugs in the original lexer implementation that had to
be fixed, along with some extraneous code that had to be removed. Luckily,
that's all been taken care of!
There was a lot of stuff added here. The most important addition is
how Pirate now returns a MissingArgument kinded error if a required
program argument isn't passed to the program.