'support sandboxes' in bootstrap

This code adds ```--default-sandbox``` and ```--sandbox path``` to the bootstrap.sh. This effectively makes it look like cabal-install has been built in a sandbox when bootstrap.sh completes.

I am a bit unsure about the logic in the SandboxPkgDbName.hs file which tries to work out what the name cabal sandbox will use for the package database directory.

It also changes the check for already downloaded tarballs to allow symlinks also. I can split this into a separate request if you want.
I don't think you actually need this file. Since the bootstrap script only works with GHC, you can work out the needed info by parsing `ghc --info` and `ghc --numeric-version`: 

```
$ ghc --numeric-version
7.8.3
$ ghc --info | sed -n 's/.*"Target platform".*"\([^"]\+\)".*/\1/p'
i386-unknown-linux
```

See also `Distribution.System.platformFromTriple`. Should be a bit faster than compiling a Haskell executable.