Return edit info from update_item and refactor item.py to use usage_key_with_run

Both of these changes are from the `bulk-publishing` branch but are also applicable to `master`. See #4505 and #4530.

@cahrens @andy-armstrong @nasthagiri please review.
Consider creating a common helper function for updating these fields, to be called by both load_item and update_item.