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 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'
```
Merge pull request #18 from lepht/cleanup-error-stack

Clean up the exception/error handling