Also remove the use of a VLA in a context where there can be unbounded memory allocations.
struct Tox
This allows Tox to contain additional data on top of Messenger, making Messenger not necessarily the most top-level object. E.g. groups are built on Messenger and currently awkwardly void-pointered into it to pretend there is no cyclic dependency.
This uses a single .cc file containing almost all the code in the repository to perform whole program analysis.