crypto: Refactor mod_exp_nif

As a preparation for the new mod_exp_prime and in the quest to reduce
to use of the old mpint format.
CRYPTO: add support for RFC-2945 SRP-3 and RFC-5054 SRP-6a authentication
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
crypto: New SRP API

Adjust API to better fit in with similar funtions in crypto
ssl & crypto: Documentation enhancements

OTP-10450
Convert XML files to UTF-8
crypto: Fix typo in documentation
Merge branch 'hb/unicode/OTP-10907'

* hb/unicode/OTP-10907:
  otp_SUITE: Add test cases to ensure that OTP conventions are obeyed
  Convert XML files to UTF-8
  Convert XML files to UTF-8, where needed
  Remove the "coding: utf-8" comment from all Erlang source files
  Update primary bootstrap
  Change the default encoding of Erlang files to UTF-8
CRYPTO: add support for Elliptic Curves to crypto app

Conflicts:

	lib/crypto/src/crypto.erl
crypto: Replaced all mpint's with normal binaries
crypto: Introduce generic sign() and verify() functions

for rsa, dss, and new ecdsa.
No mpint's accepted.
crypto: Allow integer keys for rsa_private/public_en/decrypt

as well as mpint's for backward compatibility.
crypto, public_key & ssl: Change API to hide resource format for EC KEY
crypto, public_key: Switch places of ecdh_compute_key arguments
crypto: Combine ec_key_new into ecdh_generate_key

and remove curve from the returned tuple.
crypto: Fix ec_key resource to be upgradeable
crypto: Change ecdh_compute_key to have 3 arguments
crypto: Add generic functions generate_key and compute_key

and remove corresponding specific functions for srp and ecdh
but leave dh_ functions for backward compatibility.
ssl, public_key, crypto: General generate_key and compute_key functions
ssl, crypto: Eliminate remaining mpint and EC resource key from API