Have separate timeouts for upload by url ($wgCopyUpload[Async]Timeout)

Add $wgCopyUploadTimeout and $wgCopyUploadAsyncTimeout to control
the timeout for the http request used to fetch the file during upload
by url. People reasonably may want to make this higher than $wgHTTPTimeout
for the case where very large files are being downloaded.

Also add the ability for callers of UploadFromUrl::fetchFile
to override the timeout as they please (and set any other HTTP opts).

This patch was inspired by conversation with dan-nl about gwtoolset.

Change-Id: Ia85a97434c14adcdaafc0802cbe0530bfa57a435
Merge "Have separate timeouts for upload by url ($wgCopyUpload[Async]Timeout)"