Parse and produce etcd exceptions

Etcd provides a set of [predefined exceptions](https://github.com/coreos/etcd/blob/master/Documentation/errorcode.md), modelling them as individual exception classes will allow consumer scripts to take appropriate measures depending on the classes, without parsing the response body.