Page save related exception hierarchy

All page save related exceptions are now subclasses of the new
PageSaveRelatedError, and PageNotSaved now is an alias of
PageSaveRelatedError.

Exceptions have been added for the known API error codes encountered
by Site.editpage that are errors specific to the page being edited,
and all page related save exceptions are re-raised to be handled by
scripts.

Scripts may continue to catch specific exceptions to customise
actions or errors, however scripts now only need to catch one exception
(PageNotSaved) to avoid halting on issues relating to a specific page.

PageNotSaved has been moved to last in the exception handling
of four scripts when it was previously before another exception
which is now a subclass of PageNotSaved.

Added edit_failure_tests to check exceptions are raised.

Bug: 55264
Bug: 67276
Change-Id: Id8b8c8055100329e7844b5db6500f71bbb1673f7
Merge "Page save related exception hierarchy"