Add new element to the archive-contents vector, and put
each package's URL in it (Bug#13291).
* archive-contents.el (archive--simple-package-p): Return an
additional element, EXTRAS alist, with key :url.
(archive--process-simple-package): Accept additional argument,
pass it through to the return value.
(archive--alist-to-plist, archive--plist-to-alist): New functions,
code copied from package.el.
(archive--process-multi-file-package): Extract extra fields to an
alist, include it in the return value.
(archive--write-pkg-file): Accept additional argument, unwrap that
alist into a plist, and append it to the `define-package' form.
(archive--html-make-pkg): Pass the value of :url in the `extras'
element to `archive--insert-repolinks'.
(archive--insert-repolinks): Instead of extracting the value of
"URL" manually, accept additional argument with that value.