This patch includes a completely reworked client structure.
There is now only 1 client object, that loads the appropriate
drivers. The drivers are fake, aprsis and tcpkiss.
The TCPKISS client was written from scratch to avoid using asyncio.
Asyncion is nothing but a pain in the ass.
If any part of the code had a packet object and called prepare()
on it, it would create a msgNo if it wasn't set. Sometimes we
get packets on the wire/RF that don't have a msgNo, so adding one
locally is wrong. We should ONLY create a msgNo on a packet that
is destined for transmission.
This patch ensures that even if prepare() is called, that only
packets that are created locally for TX get a msgNo unless it
already exists from RX'd packets.