Simplify Save As & related code, improve docs (#4420)

Fix bug #4420 (Save As code cleanups):

* Simplify Save As code
* Show error UI for file IO errors during Save As (previously seemed to get logged & silently ignored)
* Smaller cleanups (not altering functionality) in doSave() and handleFileAddToWorkingSet()
* Some minor docs improvements

Note: this is branching off from `pflynn/untitled-doc-unittests`, so the diff looks bigger than reality until PR #4487 lands.  The only commit unique to this PR is adaaf0d.

@couzteau or @bchintx or @ingorichter?  Not sure who owns the original Save As code...