Update cabal build

git-annex can now be built with the usual routine:

 - cabal configure --enable-tests
 - cabal build
 - cabal test

Also, "cabal sdist" will automatically create a release tarball that's suitable
for uploading to Hackage.

The necessary changes were:

 - Declare all source code modules and header files that used in the build.

 - Declare 'CHANGELOG' as an extra data file that ought to be distributed.

 - Relax 'mtl >= 2.1' constraint to 'mtl >= 2'. Git-annex doesn't actually
   depend on mtl version 2.1. By relaxing this constraint, builds can succeed
   on Ubuntu 12.04.

 - The test.hs program computes a $PATH that's supposed to include the location
   of the git-annex binary. Cabal puts that binary at 'dist/build/git-annex',
   so that directory must be included in $PATH.

 - The test suite stanza declares 'dist/build' as a source code directory to
   allow Cabal to find the generated Utility.Touch module. This is a bug in
   Cabal. It should re-run hsc to generate that source code, but doesn't. :-(