SSL: unify the different implementations signature check implementations

ssl_handshake and ssl_connection where doing essentially the same when
checking a public key signature. This unify both into a single function
SSL: simplify server key encoding, decoding and signature handling

server key encoding depends to the negotiated key exchange. Before
the encoding was limited to diffie-hellman keys. This changes allows
to select the key structure to decode and verify. It also consolidates
the transport encoding of the parameters into one place.
SSL: add TLS PSK (RFC 4279 and RFC 5487) cipher suites
CRYPTO: add support for RFC-2945 SRP-3 and RFC-5054 SRP-6a authentication
SSL: add TLS-SRP (RFC 5054) cipher suites
SSL: add tests for PSK and SRP ciphers
SSL: enable hash_size values for sha224, sha384 and sha512

Some of the PSK and SRP ciphers default to sha384, this enables
hash_size for that cipher. It also adds sha512 and sha224 to be
prepared for further cipher enhancements.
SSL: add documentation for PSK and SRP ciphers options
Implement ./otp_build configure --enable-silent-rules

With silent rules, the output of make is less verbose and compilation
warnings are easier to spot. Silent rules are disabled by default and
can be disabled or enabled at will by make V=0 and make V=1.
Merge branch 'dg/win_icon' into master-pu
Merge branch 'fdm/windows_file_share_delete' into master-pu
Merge branch 'lf/snmp-tuple-fun' into master-pu
Merge branch 'lf/snmpm_user_default' into master-pu
Merge branch 'jd/file-ram-opt-doc' into master-pu
Merge branch 'avi/fix-os-cmd-win' into master-pu
Merge branch 'id/snmp_optimization' into master-pu
Merge branch 'sk/odbc64' into master-pu
Merge branch 'fdm/fix_file_driver_memory_leak' into master-pu
Merge branch 'ks/kernel-cleanup' into master-pu
Merge branch 'ks/ssl-fix-most-unmatched_returns' into master-pu

Conflicts:
	lib/ssl/src/ssl_connection.erl