Add error reporting for invalid attribute values

Implement a mechanism to report an error when an invalid value is passed
to one of the set attribute functions that checks the validity of the value
against the allowed values specified by MODS. The majority of the
set attribute functions do not check the validity of the value
passed in, but some do.