Agent config mutators can now return errors

Previously, functions that modify agent config could not return
errors, requiring some gynamastics to get errors out of these
functions. By requiring that errors are returned some areas that call
ChangeConfig are now cleaner.