Split DRM backend into multiple files
As the description says. drm.c is currently far too large, at around 8000 lines. Split it out into a few files handling different things: state helpers, mode selection and parsing, drm_fb handling, the propose-state loop where we try to compose a state set from an output's list of views, and finally, one where we actually drive the KMS API.
/cc @agners