Since the original Matches structure was nothing more than a wrapper around a HashMap<String,
String>, the code has been updated to simply be a type alias to that type. Makes things easier.
I've made an executive decision: Opt will be in charge of displaying the
usage (help) information for the program. That will involve bringing the
functionality delivered by Token into Opt. I've begun that process now.
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.