Gracefully handle falling back to cairo when gtk_init_check() fails
There were a couple of isses:
- We shouldn't have emitted an error while constructing
- We didn't handle lingering wl_output proxies correctly
- We didn't use v3 of
wl_autput
meaning we leaked wl_output's
This MR addresses all those issues, and supersedes !133 (closed).