Changelog:
- Added set_state() to set multiple state values in one request.
- Added a connection timeout to requests; Unavailable is raised if a connection couldn't be established with 5 seconds.
- Exceptions where moved from `nanoleaf.py` to `exceptions.py`; exceptions can still be imported from `__init__.py`.
- Request are retried once if the Nanoleaf disconnected; exceptions are not handled for this second attempt.
- Added missing return type annotation to get_info().
- ClientConnectorError now raises Unavailable.
- Fixed documentation URL in setup.py.
- Added aiohttp to requirements.