engine : replace UPDATE_REPLACE with ResourceReplace exception

Replace the handle_update returned value with a new ResourceReplace
exception, which allows the replacement logic in resource.py and
parser.py to be cleaner

Change-Id: If652d031e8baeb8f4c6015e5ed2d0e5bb25f0fc6