SSL: add TLS PSK (RFC 4279 and RFC 5487) cipher suites
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
SSL: add TLS-SRP (RFC 5054) cipher suites
SSL: add tests for PSK and SRP ciphers
SSL: enable hash_size values for sha224, sha384 and sha512

Some of the PSK and SRP ciphers default to sha384, this enables
hash_size for that cipher. It also adds sha512 and sha224 to be
prepared for further cipher enhancements.
SSL: add documentation for PSK and SRP ciphers options
ssl: Add option to list all available ciper suites and enhanced documentation
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: Use new SRP crypto API
Merge branch 'ia/ssl/PSK-SRP' into maint

* ia/ssl/PSK-SRP:
  ssl: Use new SRP crypto API
  crypto: New SRP API
  CRYPTO: add algorithms/0 function that returns a list off compiled in crypto algorithms
  ssl: Add option to list all available ciper suites and enhanced documentation
  SSL: add documentation for PSK and SRP ciphers options
  SSL: enable hash_size values for sha224, sha384 and sha512
  SSL: add tests for PSK and SRP ciphers
  SSL: add TLS-SRP (RFC 5054) cipher suites
  CRYPTO: add support for RFC-2945 SRP-3 and RFC-5054 SRP-6a authentication
  crypto: Refactor mod_exp_nif
  SSL: add TLS PSK (RFC 4279 and RFC 5487) cipher suites
Consistent definition of priority levels

In the specs and the documentation of the spawn_opt family of functions
there is the following definition of priority levels:

	Level = low | normal | high

However, the process_flag/1 function in that module reads:

  process_flag(Flag :: priority, Level) -> OldLevel

    Types:

	Level = OldLevel = priority_level()
	priority_level() = low | normal | high | max

This is clearly inconsistent. Change specs to use the process_level()
type declaration instead of re-defining it in various places.
Fixed documentation for priority_level to spawn_opt
Merge branch 'ks/erlang-spawn_opt-process_level/OTP-11008' into maint

* ks/erlang-spawn_opt-process_level/OTP-11008:
  Fixed documentation for priority_level to spawn_opt
  Consistent definition of priority levels
Update preloaded modules
Changed handshake from to_erl to run_erl, on behalf of shell search
Merge branch 'fredrik/erts/to_erl_handshake/OTP-11012' into maint

* fredrik/erts/to_erl_handshake/OTP-11012:
  Changed handshake from to_erl to run_erl, on behalf of shell search
fix a race condition when there're several applications in apps directory
Merge branch 'dg/win_icon' into pu