If the type is not correct, we can let the API fail instead.
This way, if the API supports more types in the future, there
does not need to be an update. This has affected participant
permissions in groups.
Use a fixed-size queue instead of a callback to deal with updates.
Port the message box and entity cache from grammers to start off
with a clean design.
Temporarily get rid of other cruft such as automatic pings or old
catch up implementation.
Entity cache uses are removed. It was a source of ever-growing memory
usage that has to be reworked. This affects everything that tried to
obtain an input entity, input sender or input chat (such as the
SenderGetter or calls to _get_entity_pair). Input entities need to be
reworked in any case.
Its removal also affects the automatic cache of any raw API request.
Raise last error parameter is removed, and its behaviour made default.
The connection type parameter has been removed, since users really have
no need to change it.
A few more attributes have been made private, since users should not
mess with those.
Reduce abstraction leaks. Now the transport can hold any state,
rather than just the tag. It's also responsible to initialize on
the first connection, and they can be cleanly reset.
asyncio connections are no longer used, in favour of raw sockets,
which should avoid some annoyances.
For the time being, more obscure transport modes have been removed,
as well as proxy support, until further cleaning is done.
The session_state cache can be used instead.
This does put get_me with input_peer at a disadvantage, but I expect
this is not used all that often, since 'me' does just fine.