Simpler tag filter

The tag is just the basename of the URL
Extract HTTP HEAD function
Split HEAD for curl and wget
Extract HTTP Location filter
Simpler location filter
Extract archive name function
Extract archive OS and ARCH functions
Prefer case blocks to if blocks

Case blocks make handling multiple operating systems and architectures
or variations in `uname` output more straightforward, and default
values more explicit.
Create setup blocks for curl and wget
Setup HTTP GET for curl and wget
Setup curl or wget, whichever is available
Check URL after setup

We won't know which tool to use otherwise.
Use long options for curl GET
Extract concise failure function

Exit status can idiomatically be checked by chaining commands using &&
and ||
Failure messages should always end up on stderr
Merge pull request #6 from mkhl/more_functions

Extract many tiny functions