First pass at supporting new tiled files, fixing most of #25.

The software works again.  It now downloads tiled files from the USGS.
These files are now cached since they are very large and far more than
the typical user will need for their purposes.  While the code works,
it is extremely inefficient, especially in PrepRegion.py.

A minor change to GetRegion.py corrects a print statement while two
lines changed in terrain.py to reflect the new landcover product IDs.
The rest of the changes were in region.py.  New product IDs for
elevation and landcover were required.  The product availability code
now checks to see if the products are tiled instead of seamless or
read only (neither of which are usable now) and all the old layerID
code is obsolete.  The download file routine has changed significantly
and is less hackish.

Things that need to be added before the hotfix is complete:
 * Map files need to be pre-shrunk before PrepRegion.py is called.
 * Progress bars are needed for downloads and possibly elsewhere.
 * Old code needs to be stripped out.
Download resume and progress bars added, some old code removed.  References #25.

Removed decodeLayerID() because that layer ID scheme is obsolete, and
removed buildvrts() because the current approach works.

The USGS web server does not handle range checks across redirected
files.  So now we check whether we've reached the end of the redirect
chain before applying the range check.  Once we have the range check,
the USGS web server promptly ignores the request and sends us the
entire file anyway, so we drop the unneeded data on the floor.  This
is still better than deleting the file and starting from scratch
because if the USGS web server ever fixes the Range request behavior,
we will be able to take advantage of it immediately.  The code that
checks for the bugfix has not yet been written.

Accidentally left in some bad code here: there's a redirect to use
gdalwarp on the landcover files but for some reason that generates bad
value 67 on BlockIsland.  I really need to fix the ReadAsArray call!
Adds bugfix detection and support.  References #25.

If the USGS fixes their range support on the web server, then we will
no longer drop data on the floor.  It works for the broken case still.
Landcover files are now optimized, with other minor changes.  References #25.

Only the required portion of the landcover file is accessed now, which
saves time and memory.  The VRTs are warped in advance -- this is
faster than warping individual input files.

The files we create and store are now referenced via absolute paths.

In addition, I abstracted out the 'layername' functionality into a
method.  There is probably a better name for this but I can't think of
it.  Given a layer ID, tells what type of layer it is.
More cleanup.  References #25.

Debug prints, imports and variables that were no longer used were
removed.  Docstrings and comments were added.  'layername' got renamed
to 'layertype'.  os.makedirs() replaced an os.system('mkdir -p') call.
Added Downloads directory.

This is now ready to merge with master.
Merge branch 'hotfix/1.0.4'