Move exceptions into own namespace
Create ArgumentParserBase
Move some methods to ArgumentParserBase
Add MandatoryArgumentMissingException
Create NamedValueArgumentValueMissingException
Create TooManyPositionalArgumentsException
Create ArgumentFormatException
Create UnknownNamedArgumentException