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.

The line with liftM2 is equivalent to:

    base <- baseSavedConfig
    inital <- initialSavedConfig
    let testConfig = mappend base initial

Given a pure function `a -> b -> r`, `liftM2` lifts it into the monad so its type is `m a -> m b -> m r`.

It saves two lines of code and the need to name two intermediate variables.