Backend layering changes

Hello backend owners,

I have proposed a patch to fix layering issues in the X86 backend. There is some ongoing discussion with Craig Topper over on the Phabricator review:

Not being a person that works on backends, my goals are to improve layering and consistency among the backends, so I intend apply whatever agreed upon fix to all backends. If you have comments or concerns, please bring it up on the Phabricator review. I made this email so that everyone wouldn’t get spammed by Phabricator.