download: add option to download separate chunks

This is a little ugly in that it sort of hacks two different semantics
into one option: <dataset-location>. If we're to transition to a
different dataset storage format we need the tools to speak both worlds
for the moment.
download: optionally keep original chunk filenames
download: set default host via a constant

Use the same interpolation trick as used for default download location.
download: parse chunk spec in main()

To aid testing, make download() be more of an "API" than a "command line
parser".
download: protect use of file object in with statement

Do not rely on CPython's behaviour w.r.t. file objects.
download: allow expected size to be customised

In the test suite, we mock in some data to be downloaded with a
different size. Allow customisation of the expected size.
tests: add requirements for test suite and update travis

Update travis config to use the explicit requirements listed in
tests/requirements.txt.
tests: add mock DEM data

This data is a zip file containing GeoTIFF DEM chunks downsampled from
our "real" data into 8x8 pixel TIFFs. The resulting zip file is only
13KiB. The generate-dem-chunks.sh script may be used to re-create the
zip file from a local cache of the full DEM data.
tests: add simple test of downloader

This adds a test which tries to download two DEM chunks. USe the
responses mock framework to avoid trying to download ~80MiB of data on
each test run(!)
tests: expand downloader tests

Expand the simple downloader test to try all chunks and to try the
support for downloading chunk files directly.
tests: add README for mock data
tests: add copyright banner to new files

I forgot to add the copyright banners to all the tests. Add them in.
tests:travis: add integration with coveralls.io

Coveralls.io can be used to track code-coverage stats over time. We're
currently running at around 70% coverage which isn't bad but we can do
better.
tests:download: collect common code together

There was all-together too much copy-and-paste code in testdownload.py.
Collect common code together.
tests:travis: add integration with coveralls.io

Coveralls.io can be used to track code-coverage stats over time. We're
currently running at around 70% coverage which isn't bad but we can do
better.
test:download: add test for main()

Add a simple test which mocks sys.argv allowing for full end-to-end
testing of the downloader.
download: fix breakage of --split-chunks

The use of ``with target_f`` in download.py was invalid if target_f is
None. Add a somewhat ughly workaround and a test.

(This shows the advantage of nearly-full-stack testing...)
downloader: verify resolution string

Add some sanity checks to make sure that the resolution string is
sensibly formed and some tests which exercise this.
Merge pull request #19 from rjw57/test-downloader

Some unit tests! Testing the downloader.