Made most Bridge and LightGrid methods be coroutines
Added ExceptionCatcher class deriving from YieldPoint to be able to retrieve all the exceptions raised by yielding a list of Futures
Made function decorators compatible with gen.coroutine (this is so not going to work)
Fixed bug where non-generator functions wouldn't work with @return_as_json
Wait for grid.commit when running delayed state change
Updated a bunch of calls to LightGrid/Bridge methods to use yield
Apparently dict comprehensions and yield don't mesh. Also made /bridges/search work again
First version of optimize2. One issue is that it seems that self.update_info is not executed.
Fixed errors in self.update_data
Removed some debug print statements
Added a useful warning log message for when "import tornado.curl_httpclient" fails.
Minor code improvement
Merge pull request #18 from smab/optimize2

Merging optimisation branch into async branch
Removed some debug prints and added commands for adding to and removing groups from bridges.
Removed some unnecessary try/except blocks
Made bridge discovery run on the main IO loop
Merge branch 'async' of https://github.com/smab/playhouse-lights into async
Bunch of minor changes to make pylint happier