allow hostname to be passed to SSLContext even if OpenSSL doesn't support SNI (closes #22921)

Patch from Donald Stufft.
fix versionchanged version
add NEWS note for #22921
give urllib.urlopen a context parameter (closes #22927)