Allow editing of attributes

This sends a lot of messages at the moment and only completes half
of the action if an error occurs. But it works without protocol
changes for now.

Closes #20.