Implement 'sandbox add-source --snapshot'.

Unlike 'cabal-dev', we don't create a tarball, but simply copy the files to a
private location.

Fixes #1143.
Clarify a comment.
Merge pull request #1296 from 23Skidoo/add-source-snapshot

Implement 'sandbox add-source --snapshot'.
Fix BuildTestSuiteDetailedV09 on GHC <7.6
Merge branch 'master' of github.com:haskell/cabal
Explain why we use > instead for >= for modification time checks.
Don't forget to close the 'index-00.tar' handle.
Use 'notice' instead of 'info'.
Revert the old behaviour of listBuildTreeRefs.

Also make it possible to list ignored build tree refs (those present in the
index file but not in the source package DB).
Gently point the user in the direction of 'sandbox delete-source'.

We don't show that command in 'sandbox help' output by default, but if the user
is running 'list-sources', she probably wants to know about it.
Merge pull request #1300 from 23Skidoo/misc-fixes

Misc fixes here and there
Describe concerns for PackageTests authors.
Formatting.
Trailing newline.
A fix for my previous fix for 'getSourceFiles'.

Apparently, lazy I/O was involved after all. 'openFile' instead of 'withFile'
was deliberate - see the use of 'unsafeInterleaveIO' in
'packageIndexFromCache'. Fixed by adding a strict version of 'getSourceFiles'.
Revert the timestamp checks back to (>=) from (>).
Work around the low clock resolution problem of 'getModificationTime'.

See http://hackage.haskell.org/trac/ghc/ticket/7473 .
Unbreak 'tryCanonicalizePath' on Windows.
Mark the '.cabal-sandbox' dir as hidden on Windows.
Merge pull request #1297 from ttuegel/test-inplace-lib

Fix BuildTestSuiteDetailedV09 on GHC <7.6