4189: Look up owner's writable_by when API did not provide writable_by for the object in question.
4189: Admit in writable_by that an object is writable when its owner_uuid is writable.
4189: Add writable_by to User API response, so writable_by is available for every owner_uuid.
4189: Document the API server's writable_by field.
4189: Workbench tests clear more state during teardown.

I'm working on some new tests that pick up on stale state without
these changes.
4189: Workbench lets users with write permission rename objects in projects.

The key part of this commit are the changes to ApplicationHelper.
There's also some refactoring to more consistently answer questions
about whether or not an attribute is editable.

There are also some tests in here that I wrote while I was tracking
down the problem.  They seem like a useful addition.
Merge branch '4189-workbench-project-admin-attr-editing-wip'

Closes #4189, #4202.