Sandbox repo overriding #1884

This addresses the concern raised in #1884. Please review. I've elected to make the overriding behavior specific to remote repos for now, though it could easily be extended to any other field.

I've also backported this patch to 1.18 and 1.20, and after this PR is reviewed/merged, I will open pull requests for each of those branches. Those diffs can be viewed at:

https://github.com/snoyberg/cabal/compare/1.18?expand=1
https://github.com/snoyberg/cabal/compare/1.20?expand=1