Add a way for the caller to tell whether the deps were reinstalled.
Reinstall add-source deps in reconfigure.

Allows us to reconfigure on reinstall and pass compiler & platform to
'reinstallAddSourceDeps'.
Move 'D.C.{PackageEnvironment, Index}' under 'D.C.Sandbox'.

They're only used by the sandbox code ATM.
Warn if a file's modification time is in the future.
Rename 'AreDepsReinstalled' to 'WereDepsReinstalled'.
Make it impossible to override 'package-db' in 'cabal.config'.
Don't create a package DB in 'sandbox init'.

It'll be created on demand by 'configureAction' or 'install'.
Make 'configure -w' update the cabal.sandbox.config file.

I decided to go this route instead of passing compiler & platform to
'reinstallAddSourceDeps' directly because it makes the side-effect of
'configure' easier to test.
Rename 'withSandboxDir' to 'whenUsingSandbox'.
Rename 'tryLoadPackageEnvironment' to 'tryLoadSandboxPackageEnvironment'.
Merge pull request #1293 from 23Skidoo/reinstall-improvements

Improvements to 'reinstallAddSourceDeps'
Test building detailed test suites.

Detect bug #1287.
Build detailed test suite pieces with own ComponentLocalBuildInfo.

Bug #1287. Type 'detailed-0.9' test suites were failing to build because the
ComponentLocalBuildInfo for the test suite was being used to build the library
and stub executable. The test suite's ComponentLocalBuildInfo should only be used
to create the CLBIs for the library and stub executable, as they have their own
CLBI constructors. Proactively make the same fix for benchmarks, though there is
no build failure there yet.
Merge pull request #1291 from ttuegel/detailed-tests

Build detailed test suite pieces with own ComponentLocalBuildInfo.