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.