Clean up the exception/error handling

Made it so that parse_error method is only doing error-parsing-like
things, not throwing errors. This lead to confusing error messages coming from
parse_error instead of their actual source:

```
  [2] pry(main)> client = Hue::Client.new
  Hue::LinkButtonNotPressed: link button not pressed
  from /Library/Ruby/Gems/2.0.0/gems/hue-0.1.3/lib/hue/client.rb:83:in
  `parse_error'
```

  *vs*

```
  [2] pry(main)> client = Hue::Client.new
  Hue::LinkButtonNotPressed: link button not pressed
  from /Library/Ruby/Gems/2.0.0/gems/hue-0.1.3/lib/hue/client.rb:81:in
  `register_user'
```