Use a code generator to call functions from wire format
This change removes the dependency on libffi and the header-dependency on libwayland. (`wayland-xml` is still needed, of course.) A python script is used to generate a series of 'call_*' functions which parse the wire format and invoke matching `do_*` functions to be defined by the user. With lto the `call_*` and `do_*` parts can often be combined, reducing their effective cost to almost zero. The script also generates more optimized data to check sizes and generate new objects.
Showing with 950 additions and 887 deletions