Merge pull request #6 from ermau/master

Tweaks and cleanup
Merge pull request #7 from ermau/master

Fix NullReferenceException
Remove Lamp and add direct Light/Lights getters

It's confusing to have two different light types, especially when one of
them provides very little value. I've removed Lamp and the getter for it
on HueClient. In its place I've added a getter for the Light type, which
makes it far more discoverable than having to retrieve the bridge and then
access lights. A getter for individual lights was also added.
IsInitialized shouldn't be settable from outside
Improve CheckInitialized()

- Throw more appropriate exception
- Improve message
Improve RegisterAsync

- Return value is now false for not hitting the bridge button. Exceptions
  should not be used for non-exceptional situations or control flow. HTTP
  errors will automatically throw, and any errors we don't recognize as
  well are now manually thrown.
- Internals improved to utilize and parse JSON instead of hand
  constructions and searches.
- Separate the application's key from the name of the app.
Update README
Merge pull request #8 from ermau/unify-lights

Remove Lamp and add direct Light/Lights getters
Merge pull request #9 from ermau/initialization-cleanup

Register and Initialization cleanup
Finish standardizing on lights instead of lamps
Internalize IEnumerable extensions