ssl: Support for SSL Next Protocol Negotiation
* http://technotes.googlecode.com/git/nextprotoneg.html
ssl: Update SSL docs for SSL Next Protocol Support
ssl: Changed default behaviour of next protocol negotiation to make
more "sense" (be true to the specification).
ssl: Dialyzer fixes and code cleaning

Types in a record where wrongly type specified, did not include
undefined.  Make them comments for now, maybe we will specify internal
records with dialyzer types later, but as the other record fields are
not specified at the moment, with dialyzer types, make the code
consistent.
ssl: SSL 3.0 does not support next protocol negotiation

Also shorten test cases names to workaround test framework problems
on windows
ssl: Adopt test case to not take so long
ssl: Shorten test case names to workaround ct shortcomings on windows
Merge branch 'ia/ssl/npn/OTP-10361'

* ia/ssl/npn/OTP-10361:
  ssl: Shorten test case names to workaround ct shortcomings on windows
  ssl: SSL 3.0 does not support next protocol negotiation
  ssl: Dialyzer fixes and code cleaning
  ssl: Changed default behaviour of next protocol negotiation to make more "sense" (be true to the specification).
  ssl: Update SSL docs for SSL Next Protocol Support
  ssl: Support for SSL Next Protocol Negotiation * http://technotes.googlecode.com/git/nextprotoneg.html
ssl: It is now possible to call controlling_process on a listen socket,
same as in gen_tcp.

Made error handling of listen sockets as arguments to funtions
expecting a connected socket more inet/gen_tcp like.
ssl: Improve #sslsocket{} API

A #sslsocket{} contains the fsm pid and value that was previously set to
old_ssl or new_ssl to make the transition period smoother. Now that old
ssl is not supported any more we use this field to store the inet socket
reference instead. This enables some API functions to return quicker
as they do not need to communicate with the fsm-process.
ssl: Better test to determine if sslv2 is supported by openssl
Merge branch 'ia/ssl/controlling-process-on-listen-socket/OTP-10447'

* ia/ssl/controlling-process-on-listen-socket/OTP-10447:
  ssl: Improve #sslsocket{} API
  ssl: It is now possible to call controlling_process on a listen socket, same as in gen_tcp.
Merge remote branch 'upstream/maint'

* upstream/maint:
  ssl: Do not use gen_fsm:sync_send_all_state_event/3 timeout
Merge branch 'maint'

* maint:
  ssl: Adopt test case to not take so long
  Fix bug in erts_port_task_schedule()
  Use reduction limit in order to determine when to do wakeup

Conflicts:
	erts/emulator/beam/erl_port_task.c
	erts/emulator/beam/erl_process.c
Merge remote branch 'upstream/maint'

Conflicts:
	lib/ssl/src/ssl_connection.erl
Merge remote branch 'upstream/maint'
SSL: TLS 1.2, advertise sha224 support

SHA-224 is still better than SHA-1, so let the world know we support it
Merge remote branch 'upstream/maint'
Merge branch 'as/ssl-sha224-fixes'

* as/ssl-sha224-fixes:
  SSL: TLS 1.2, advertise sha224 support

OTP-10586
ssl: Add test case for ssl:peercert with client certification