wayland: Regenerate protocol
scanner: Dedent contents

Make the whitespace look a bit nicer.
scanner: Make everything global

This is how actual Wayland works, too.
wayland: Correct the signature for newResource constructors
client: Move setVersion outside of the Resource constructor

Resources will soon by constructed by the protocol library.
client: Actually read the strings we parse
client: Actually read nullable for objects passed to us
scanner: Directly encode type information into the protocol

And update the client libs to validate it.
client: Pass a newly constructed resource directly to the impl

Now that we have the type information, we can do this. This makes the
API considerably cleaner and easier to use.