Add edit functionality

The Client.Edit method takes a string map containing edit parameters and
attempts to perform the requested edit.

Also made a minor style correction suggested by golint.
Add support for custom user agents