Document the existing conventions.
Use `mystruct.foo` instead of `mystruct::foo` because `::` is pretty
alien to C.
Instead of backticks, use a different format to reference declarations
in our docs:
See foo().
See struct foo.
See union bar.
See enum baz.
See typedef meh.
This is inspired by the kernel's documentation style [1]. This format
has the upside of being pretty natural to write and read, and can be
automatically processed by documentation generators.
[1]: https://www.kernel.org/doc/html/latest/doc-guide/kernel-doc.html#cross-referencing-from-restructuredtext
wlroots doesn't really follow the rule of keeping `create`/`destroy` and
`init`/`finish` functions in pairs, so the relevant doc section is
updated accordingly.
Commits named "Fix #XXX" make it pretty complicated to figure out
exactly what the commit is doing from the shortlog. A better place
for issue references is in the extended commit message.
Some globals are static and it doesn't make sense to destroy them before
the wl_display. For instance, wl_compositor should be created before the
display is started and shouldn't be destroyed.
For these globals, we can simplify the code by removing the destructor
and stop keeping track of wl_resources (these will be destroyed with the
wl_display by libwayland).
Changed the contribution guidelines to be more consistent with the style
that wlroots has evolved into, and removed some duplicate information
that already exists in the kernel style.