Add a `--no-download` flag to the data command

Currently, when `hoogle data` is run, all missing files will be automatically
downloaded from the internet. This can be insecure, and in some cases - like
distribution packaging of hoogle - it's not what it's intended (and most
likely, a packaging or configuration error).

This patch adds a `--no-download` flag which prevents such a download, and
instead exits with an error, making the error obvious. For safety, this flag in
checked in two different places: it both disables the file to URL mapping and
prevents the downloader from running.

The output (with the current version) is:

    $ hoogle data --no-download
    hoogle: Error when running Shake build system:
    * default.hoo
    * platform.hoo
    * platform.txt
    * downloads/platform.cabal.cache
    * downloads/platform.cabal
    Error, file does not exist and no rule available:
      downloads/platform.cabal

Not the clearest, but it should still be self-explanatory, I think.
Expand test suite to be able to test `--no-download`

The test suite can only test success cases, so it needs a bit of adjustement
and a new dependency on temporary in order to setup the environment for
`--no-download` testing.

I've left the existing tests to run in the default data directory, although
this means it's not a hermetic test, I think.