Improve error handling

* Return optionally structured errors with more information.

```
if hcErr, ok := err.(hipchat.Error); ok {
	log.Printf("[%d] %q", hcErr.Code, hcErr.Message)
}
```

* Actually return the error if a message wasn't posted.

This removes the human friendly error message being reported by https://github.com/andybons/hipchat/issues/8 and returns a standard Hipchat.Error instead.
eh. we know it's small :)

how about
```
// getError unmarshals a HipChat error response from body and returns its error field.
```