Refactoring Args class; step 11, extract classes out of Args, including ArgsException
Refactoring Args class; step 12, code also passes book tests