Improve form editing support

Add support for get/set within JSON fields via attribute path
* For example, field_name "config|foo" refers to the "foo" property in the JSON field "config".
* Deeper lookups also work, e.g. "config|foo|bar|baz"

Also:
* DRY out use of JSON error return utilities
* inlineEditForm.js no longer requires endpoints to include "ok" or "error" in returned JSON