Yet another update to fix some bugs and increase the stability of the library, or, at least, that was the attempt!
This release should really **improve the experience with the background thread** that the library starts to read things from the network as soon as it can, but I can't spot every use case, so please report any bug (and as always, minimal reproducible use cases will help a lot).
Bug fixes
* `setup.py` was failing on Python < 3.5 due to some imports.
* Duplicated updates should now be ignored.
* `.send_message` would crash in some cases, due to having a typo using the wrong object.
* `"socket is None"` when calling `.connect()` should not happen anymore.
* `BrokenPipeError` was still being raised due to an incorrect order on the `try/except` block.
Enhancements
* **Type hinting** for all the generated `Request`'s and `TLObjects`! IDEs like PyCharm will benefit from this.
* `ProxyConnectionError` should properly be passed to the main thread for you to handle.
* The background thread will only be started after you're authorized on Telegram (i.e. logged in), and several other attempts at polishing the experience with this thread.
* The `Connection` instance is only created once now, and reused later.
* Calling `.connect()` should have a better behavior now (like actually *trying* to connect even if we seemingly were connected already).
* `.reconnect()` behavior has been changed to also be more consistent by making the assumption that we'll only reconnect if the server has disconnected us, and is now private.
Other changes
* `TLObject.__repr__` doesn't show the original TL definition anymore, it was a lot of clutter. If you have any complaints open an issue and we can discuss it.
* Internally, the `'+'` from the phone number is now stripped, since it shouldn't be included.
* Spotted a new place where `BrokenAuthKeyError` would be raised, and it now is raised there.