Omit initial status request callback check.

PR#3178
Add new function SSL_CTX_get_ssl_method().

Partial fix for PR#3183.
Support retries in certificate callback
Certificate callback doc.
Add cert callback retry test.
Compare encodings in X509_cmp as well as hash.
New function to set compression methods so they can be safely freed.
Add loaded dynamic ENGINEs to list.

Always add a dynamically loaded ENGINE to list. Otherwise it can cause
problems when multiply loaded, especially if it adds new public key methods.
For all current engines we only want a single implementation anyway.
Fix demo comment: 0.9.9 never released.
Check i before r[i].

PR#3244
(cherry picked from commit 9614d2c676ffe74ce0c919d9e5c0d622a011cbed)
typo
Clarify docs.

Remove reference to ERR_TXT_MALLOCED in the error library as that is
only used internally. Indicate that returned error data must not be
freed.
(cherry picked from commit f2d678e6e89b6508147086610e985d4e8416e867)
crypto/sha/asm/sha1-x86_64.pl update:

+5% on Atom Silvermont, up to +8% improvement of legacy code.
Harmonize sha1-586.pl and aesni-sha1-x86_86.p with sha1-x86_64.pl.
crypto/aes/asm/aesni-x86[_64].pl update, up to 14% improvement on
Atom Silvermont. On other CPUs one can observe 1% loss on some
algorithms.
modes/asm/ghash-s390x.pl: +15% performance improvement on z10.
Demo of use of errors in applications.
New ctrl to set current certificate.

New ctrl sets current certificate based on certain criteria. Currently
two options: set the first valid certificate as current and set the
next valid certificate as current. Using these an application can
iterate over all certificates in an SSL_CTX or SSL structure.
Add quotes as CC can contain spaces.

PR#3253
s3_pkt.c: move ssl3_release_write_buffer to ssl3_write_bytes.

If application has more data than maximum fragment, hold to buffer
for whole write, as opposite to per-fragment strategy.
[aesni|sha*]-mb-x86_64.pl: add data prefetching.