Move away from crypto:md5 deprecated in R16B01

crypto:md5 was deprecated by commit 7c901c9 first released in R16B01.

Main script used:
$ find . -type f -name "*.[he]rl" -exec sed -i -e "s/crypto:md5(/crypto:hash(md5, /g" {} \;
Move away from crypto sha functions deprecated in R16B01

crypto:sha et similia were deprecated by commit 7c901c9 first released
in R16B01.

Main scripts used:
$ find . -type f -name "*.[he]rl" -exec sed -i -e "s/crypto:sha(/crypto:hash(sha, /g" {} \;
$ find . -type f -name "*.[he]rl" -exec sed -i -e "s/crypto:sha_mac(/crypto:hmac(sha, /g" {} \;
$ find . -type f -name "*.[he]rl" -exec sed -i -e "s/crypto:sha_init()/crypto:hash_init(sha)/g" {} \;
$ find . -type f -name "*.[he]rl" -exec sed -i -e "s/crypto:sha_update(/crypto:hash_update(/g" {} \;
$ find . -type f -name "*.[he]rl" -exec sed -i -e "s/crypto:sha_final(/crypto:hash_final(/g" {} \;
Continue using deprecated crypto:sha_mac in order to build on R15...

... as crypto:hmac was introduced only in R16B by ffef856.
Move away from module asn1rt deprecated in OTP 17.0 - ref OTP-11731
Move away from deprecated crypto:sha_mac when crypto:hmac is available

... as done in b7da016.  The ifdef trick is in the same module that
uses the crypto function.

Also make the regexp for detecting the Erlang release more explicit.
Move away from deprecate built-in types whenever possible

Ref OTP b66e75c285cba469c5225f3394da149456d17d16.
Merge branch 'fix-deprecation-warnings' of https://github.com/lucafavatella/MongooseIM into lucafavatella-fix-deprecation-warnings

Conflicts:
	apps/ejabberd/src/cyrsasl_digest.erl
	apps/ejabberd/src/ejabberd_commands.erl
	apps/ejabberd/src/ejabberd_sm_mnesia.erl
	apps/ejabberd/src/eldap.erl
	apps/ejabberd/src/mod_admin_extra_accounts.erl
Merge branch 'lucafavatella-fix-deprecation-warnings'