Actually speak HTTPS when fetching HTTPS URLs

Use https.request or http.request as appropriate
when fetching URLs with http_client.request()

This fixes fetching URLs from several sites which
returned HTTP -> HTTPS redirects when fetching various URLs.
These previously succeeded in the browser where the browser's
networking stack followed redirects itself but not under Node
where the server just repeated the request with HTTP
Avoid fetching the same site icon URL multiple times

Multiple icon tags on the page may reference the same icon URL - eg.
if the same icon is used for Facebook and Twitter. Only fetch the icon
once in these cases.