Actually trap a save error

We've already patched PUT to actually save the object so that pre/post-save middleware is invoked; now handle the situation where actually saving the object throws an error by returning the error over the API rather than actually throwing.