Bug 1036064 - Accept local paths to --installer-url and --test-url; r=aki

If the argument given to --installer-url and --test-url looks like a
path (we only support UNIX paths), we prepend file:// to the value. The
existing URL handling code transparently "downloads" these URLs by
copying the file.

As part of testing this, I realized my local build wasn't producing a
jsshell archive and failed "downloads" would retry. I added some logic
to the download error handling logic to detect local filesystem errors
so this error is treated as fatal.

The .errno comparison should probably catch a few more failures, such as
permissions failures. But I'm not sure which ones are exclusive to
file:// vs other protocols. I suppose we could have certain protocol
handlers not retry. But this was the simplest patch.

--HG--
extra : rebase_source : e9884a8e1c7f51c2a9fe5865ebf62027d725f152
extra : amend_source : 6c71c664148f5221faa2cddfe890c6bdbf983498