adds ArgumentErrorHandler class

Pulled out the complicated error message handling into its own class
(passes existing tests - may need modified) and also updates current
acceptance tests to closer match those provided by Dr. Garrett.