Optimized Standards.URI `== and _sprintf rather significantly.

Note that _sprintf is also used for cast-to-string (and was previously
used for `==).

For the most common case (Standards.URI(uri), where uri is a complete
url, which is then casted to a string or used as a mapping index) the
code is now about 10x faster.

Also added __hash.
Ensure serial is positive (+ some insignificant changes)
SSL.session: Fixed FIXME in is_supported_cert().

is_supported_cert() now ensures that all signatures in the selected
certificate chain are supported by the peer in TLS 1.2 and later.

Also adds the MD5 hashes to the set assumed to be supported by the
peer as per RFC 5246 7.4.1.4.1.