Add an `object.modifiers.move()` method, similar to the one for constraints and some other collections. Currently reordering modifiers requires using operators, which depend on context. The implementation is straightforward, except for the need to make the severity of errors reported by the underlying editor code into a parameter, so that the new Python API function reports any problems as Python exceptions, and refactoring the code to allow aborting a blocked move before making any changes. I also turn the negative index condition from an assert into an error. Differential Revision: https://developer.blender.org/D16966