backends: store backend on backend specific output structures
To avoid retrieving the backend from the compositor all the time, store a pointer to the backend on its respective output structure.
This will be useful once the compositor contains more than one backend.
This series is split out from !578 (merged), where it was an optimization to avoid looping over the compositor backend list all the time.