Features: customer update operation

This is a replacement for #56, with merge conflicts resolved. Thanks very much to @ukautz.

Fixes #56.