cabal-install: Add command 'cabal user-config diff'.

This command prints out a psuedo-diff between the user's `~/.cabal/config` file and what cabal would generate if it did not exist.

Tested with ghc 7.8.3 and 7.4.2. I'm trying to write a unit-test for it, but that's a little 'deep'. Thought I'd get some feedback on this first.

I like the old name slightly better because it communicates that this record is for serialising configuration data to disk. If it's too much of a hassle to move these functions into their own module I guess we can keep them in this file.