ssl: Avoid supervior bottleneck

This is done by using proc_lib and gen_fsm:enter_loop
so that supervisor will not have to wait for the relative long initialization
of an ssl connection process before starting another connection process.
ssl: Reuse session check optimization
ssl: Move and avoid ets:select bottleneck in client

Do not use ssl_manager process for selecting an id. It's unnecessary
to involve the manager process at all on the client side.
ssl: Use ordered_set in cache

So we can use partial bound keys for matching
ssl: Renegotiate updates session id in gen_fsm state

The session id keept in the connection processes state must be updated to be
the id selected by ssl_handshake:client_hello, failing to do so will
cause a crash if the session is not reused.
ssl: Move ets:select bottleneck in server

Only use ssl_manager for selecting new ids to guarantee uniqueness,
but reuse check does not need to be performed by the manager.
ssl: Use md5 as file ref id instead of filenames

Aviods storing a lot of data
ssl: Refactored for readability

Instance of state variable that are "updated" in a function is called
for example State0 and the last instance, that should be returned, is
called State possible intermidiat versions are suffixed by increasing
numbers.  State0 may be rturned in error cases.

Avoid nesting case statments.
ssl: Simpler PEM cache
ssl: File handling optimization

Avoid cach validation with file:file_info/2 as this i too expensive and
causes a bottleneck in the file server. Instead we expose a new API function
ssl:clear_pem_cache/0 to deal with the problem. As we think it will be
of occasional use and the normal case is that the cache will be valid we think
it is the right thing to do.

Convert file paths to binary representation in the ssl API module to
avoid uncessarry calls in file later on.

Also add sanity checks for openssl versions in testsuite due to new
openssl bugs.
ssl: Avoid second bottleneck in supervisor

Do proc_lib:spawn_link instead of proc_lib:start_link as synchronized
init is not used/needed anyway.
ssl: Test case fixes
Merge branch 'ia/ssl/bottlenecks/OTP-10113' into maint

* ia/ssl/bottlenecks/OTP-10113:
  ssl: Test case fixes
  ssl: Avoid second bottleneck in supervisor
  ssl: File handling optimization
  ssl: Simpler PEM cache
  ssl: Refactored for readability
  ssl: Use md5 as file ref id instead of filenames
  ssl: Move ets:select bottleneck in server
  ssl: Renegotiate updates session id in gen_fsm state
  ssl: Use ordered_set in cache
  ssl: Move and avoid ets:select bottleneck in client
  ssl: Reuse session check optimization
  ssl: Avoid supervior bottleneck
Fix Table Viewer crash after a 'Found' -> 'Not found' search sequence

Start position was lost after a 'Found' -> 'Not found' search sequence
leading an undefined position in the next search
Escape control characters in Table Viewer

Similar behaviour to old tv.
Objects in tables supposed to be printed in a single line
and it looks ugly when a [...,10,...] integer list
creates a new-line.
Merge branch 'bg/temp-hipe-fixes' into pu

Conflicts:
	lib/compiler/test/compilation_SUITE.erl
Merge branch 'ta/prim_archive-reloading' into pu
Merge branch 'hw/asn1rt_check-transform' into pu
Merge branch 'wc/fix-eunit-print-stacktrace' into pu
Merge branch 'mh/eunit_surefire-fixture-errors' into pu