Throw MissingArgException instead of ArgException

A finer grained exception for clients to process individually.
Throw QueryInvalidArgException instead of ArgException
Throw FormatException for invalid date time values
Throw ValidationArgException in the ArgValidators

Some tests were testing two things, exception and
correct values for validators. I split those out to their
individual tests.
Throw ValidationArgException in the enum ArgReviver
Clean up exceptions XDocs