openssl: certificate fingerprinting support

Adds the function `openssl_x509_fingerprint()` to determine the fingerprint or hash of a certificate.

    string|false openssl_x509_fingerprint(
        mixed $x509, 
        [, string $method = "sha1" 
        [, bool $raw_output = false
    ] ] )

Example:

    $context = stream_context_create(['ssl' => ['capture_peer_cert' => true]]);
    $f = fopen($url, 'rt', false, $context);
    $options = stream_context_get_options($context);

    echo openssl_x509_fingerprint($options['ssl']['peer_certificate'], $result, 'sha256'), "\n";

Any hash functions that `openssl_digest()` supports can be used.

It also comes with the `peer_fingerprint` connection assertion:

    $context = stream_context_create([
        'ssl' => [
            'peer_fingerprint' => 'd41d8cd98f00b204e9800998ecf8427e',
        ]
    ]);