Returning device on register_listener callback, updated README accordingly

Fix for issue #15. The device object is returned on the callbacks registered through register_listener, so if you have multiple devices, you can identify which one triggered a callback.

Unfortunately, this isn't backwards compatible.

Also updating Switch to return the state after calls to on()/off(), including "Error" if the state was already on/off.