Allow RSA to work in FIPS mode

The digest_type_t structure used to store the NID of the hash
function, but it is now changed to the function that returns the
EVP_MD pointer. The reason is that the NID can be retrieved from the
EVP_MD structure (the type field), but EVP_get_digestbynid cannot be
user reliably to retrieve the EVP_MD from the NID.
Do not report unsupported curves in FIPS mode
Ensure SRP is disabled in FIPS mode

Also fixed the Erlang code to consistently convert notsup atoms
returned from the NIFs to notsup errors.
Update test suites with FIPS mode support

Every algorithm is now tested in both FIPS and non-FIPS modes (when
crypto is compiled with FIPS support). In FIPS mode non-FIPS
algorithms are disabled and the tests verify that they crash with
notsup error as expected.

In FIPS mode RSA and EC algorithms don't work if the key sizes are
below a minimum required value - which happened to be the case with
most keys used in the tests. These tests were changed to use longer
keys (even in non-FIPS mode for simplicity).