Reload the target object before updating if it is marked read-only
(e.g., it was retrieved using a join). Also, fix error response when
update is called on a non-existent object.

Prevents ActiveRecord::ReadOnlyRecord error.

refs #1871
amends 92d1022d103b58ddad0427736a776a27f198667e