beam_lib, compile: Replace use of deprecated crypto functions

Since both the STDLIB and compiler applications turn warnings
into errors, we must stop using the old deprecated crypto functions.

While we are at it, generalize the format of the key tuple returned
by beam_lib:make_crypto_key/2 to facilitate introducing new crypto
methods in the future. Change the format to:

  {Type,Key,IV,BlockSize}

where Type, Key, and IV are the first three arguments for either
crypto:block_encrypt4/ or crypto:block_decrypt/4, and BlockSize
is the block size for the crypto algorithm (it is needed to properly
pad the plaintext blocks before encryption).
public_key: Add new API functions to the documentation
ssl & crypto: Generalize the remaining crypto API
ssl & public_key: Use standard name
ssl: Only send ECC-hello extension if ECC-cipher suites are advertised
crypto: Remove debug printouts
ssl: Fix dialyzer spec
ssl: fix unused variable warnings
ssl: add missing TLS_EMPTY_RENEGOTIATION_INFO_SCSV
ssl: fix EC hello extensions
ssl: split psk anon tests
ssl: srp anon does not send a server certificate
ssl: clear pending timeout events on timer_cancel

borrowed from gen_fsm, a cancel_timer should clear
timer events that might have been fired from the
message queue
ssl: implement DTLS
ssl: tests for DTLS
ssl: fix (remove) ssl_socket guard on ssl_accept
ssl: whatever the SSL options say, when we negotiated a Anonymouse, PSK or SRP cipher suites, client certificates and certificate requests are not permited
ssl: add ECDHE_PSK and PSK_NULL cipher suites