Implement 'honor_cipher_order' SSL server-side option

HonorCipherOrder as implemented in Apache, nginx, lighttpd, etc. This
instructs the server to prefer its own cipher ordering rather than the
client's and can help protect against things like BEAST while
maintaining compatability with clients which only support older ciphers.

This code is mostly written by Andrew Thompson, only the test case was
added by Andreas Schultz.
ssl: Avoid test case timing issues
Merge branch 'ia/Vagabond/adt-honor-cipher-order/OTP-11621'

* ia/Vagabond/adt-honor-cipher-order/OTP-11621:
  Implement 'honor_cipher_order' SSL server-side option
Merge branch 'ia/ssl/tests'

* ia/ssl/tests:
  ssl: Avoid test case timing issues
Fix incorrect use of public_key:private_key/0 type

public_key:private_key/0 was referenced but undefined, and lib/ssl had a
local definition of private_key/0.

To fix that, make the following changes:
 * add public_key:private_key/0 type
 * document public_key/0 and private_key/0
 * fix incorrect definitions and references
Fix incorrect type reference (inet:ipaddress() -> inet:ip_address())
ssl: use is_boolean/1 guard in option validation
ssl: Add workaround in test code for openssl s_client bug
ssl: Fix broken appup from ssl-5.2.1.1 that was released together with
inets-5.9.2.2
ftp,ssl: Fixes broken type link (ssloption).
Prepare release
ssl: Unicode adaptions
public_key: Export some dialyzer types

Move dilayzer types from include file to erl file and use
-export_type
Merge branch 'ia/public_key/specs'

* ia/public_key/specs:
  public_key: Export some dialyzer types
Merge branch 'maint-r15' into maint-r16
Merge branch 'maint'
Fix edoc usage errors

Errors discovered using `erldocs`:
  Superfluous @hidden tag would exit edoc application;
  'Multiple @spec tag': appended a @clear tag after macro condition;
  '@spec arity does not match': added missing argument.
ssl: Add test for avoiding a version and chipher suite missmatch
ssl: Fix possible mismatch between SSL/TLS version and default ciphers
ssl: Correct clean up of certificate database when certs are inputed
in pure DER format.

The incorrect code could cause a memory leek when certs where inputed
in DER.