brw/copy: Perform constant folding with constant propagation
I have not measured the compile-time performance. I think just having the cleanup in the last commit makes it worth it. I'm not completely satisfied with the middle commit, and I'm open to suggestions there.