Exception no longer thrown when match not found

User can pass in a function telling the parser what to do when no match
is found. User can either consume predefined text or write there own.

If a function is not passed in the parser will throw an argument null
exception.
Parser now accounts for helparg in checks

The parser will no operate if it has not been given arguments to use.
The help argument should and now does not count towards this.

Also, added in the default case for Parse() if a noMatchAction is not
passed in. Evidently I missed it in the last commit
All unit tests work and improved help backend