Add ability to edit HAL representations.

This is useful for writable APIs where you want to fetch the current representation or a template, update it and the PUT or POST it to the perform the update.