engine : cleanup Resource.update error paths

The current update code uses a nasty pattern where returning an
arbitrary string from Resource.update is interpreted in parser.Stack
as an error.  Instead use exceptions which is much nicer :)

Change-Id: I2ddebfd6bbec3dc229012406da72dd928fcc4595
Merge "engine : cleanup Resource.update error paths"