Fail gracefully when files are locked during fetch

If Visual Studio has locked files in the dependencies directory and you
try to do a fetch --clean, we might be unable to clear out the directory.
Previously we failed after deleting some files, which is painful because
the only way to recover is to quit Visual Studio and repeat the fetch. Now
we try very hard not to change anything if some of the files are locked,
so that the user can choose whether to not to retry the fetch.
Define 'system' and 'architecture' based on 'platform'.
Allow lookup tables in dependency file.
Cache some dependency archives, strip zip dirs.

If 'allow-cache' is true, a dependency downloaded over HTTP will be cached
and future requests for the same URL will be fulfilled from the cache
without going to the web.

'strip-archive-dirs' now works on zip archives as well as tar archives.
Bump version number