SSL: run OpenSSL tests only on cipher suites supported in OpenSSL

Erlangs SSL app can in some cases support more TLS cipher suites
that the underlying openssl version itself. So when running the
openssl connection tests we need to consider not only our own
capabilites, but openssl's as well.
CRYPTO: add algorithms/0 function that returns a list off compiled in crypto algorithms

add algorithms/0 function that returns a list off compiled in crypto algorithms
and make tests suites with SHA226, SHA256, SHA384 and SHA512 conditional based
on that
SSL: replace sha256_mac() tests with crypto:algorithms()
CRYPTO: add support for Elliptic Curves to crypto app
PUBLIC_KEY: add support for Elliptic Curves to public_key app
SSL: filter TLS cipher suites for supported algorithms
SSL: add Elliptic Curve support for ssl app
SSL: add Elliptic Curve ciphers unit tests