inet_drv.c: Set sockaddr lengths in inet_set_[f]address

Set appropriate values for the sockaddr length fields---sai.sin_len
and sai6.sin6_len---if those fields exist; rely on the NO_SA_LEN
configure check to see if they exist.  The length field exists on at
least FreeBSD, and there it needs to have a proper value for instance
in the call to sctp_bindx, or else that will fail with EINVAL.
Enable silent start of wx

Add {silent_start, boolean()} option to wx:new/1 in order to be able
to suppress error messages during startup of wx.
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.
Fix Table Viewer search crash on new|changed|deleted rows
Fix bug where zip archives wrongly have a first disk number set to 1
Add tests showing that trying to delete non-existing object may corrupt the table index

In case of bag tables, trying to delete a non-existing object leads to
the index becoming corrupt. This happens if the non-existing object we
try to delete happens to share its key and index field value with a single
existing object in the table.
Result: The index entry corresponding to the existing object is
removed.
Prevent index from being corrupted if a nonexistent item is deleted

We have to ensure that we actually delete the last object with a
given (key, index) pair before removing the index.
observer: fix app file (Noticed-by: Motiejus Jakstys)

Add missing observer modules to observer.app.src.
Improve interoperability with SSH clients

This patch fixes a few problems of the SSH shell server that affect the
interoperability with SSH clients in widespread use.

First problem is that, whenever a channel_request message is
received with want_reply=true, the reply ends up being sent to the
servers channel id, not the clients channel id. This causes the client
to terminate the connection. The easiest solution to the problem appears
to be a new function in ssh_connection_manager.erl that translates the
servers channel id before sending the reply (in the same manner as
other functions do it).

Second problem is in ssh_cli.erl. When an SSH client sends a
window_change request between PTY allocation and starting the shell
(which appears to happen with some clients), ssh_cli.erl crashes
because #state.buf is yet 'undefined'. Allocating an empty buffer at PTY
allocation time solves the problem.

Affected SSH clients:
 - all clients based on SSH-2.0-TrileadSSH2Java_213 (problem #1)
 - SSH Term Pro (problem #2)
Fix SCTP multihoming

Setting several ip addresses for an SCTP socket worked only for IPv4
on Linux.  For IPv6 and for other for instance Solaris and FreeBSD, it
failed with badarg for both IPv4 and IPv6.

For the first address specified to gen_sctp:open, bind is now called,
while for any following addresses, sctp_bindx is called, repeatedly,
with one address at a time.  Previously, sctp_bindx was called for all
addresses in one go, with the addresses in reverse order, and bind was
not called at all if more than one address was specified.  Both
Solaris and FreeBSD requires bind to have been called before calling
sctp_bindx, and FreeBSD additionally allows at most one address at a
time in the call to sctp_bindx.

For some versions of Linux, for instance SuSE 10, the port can be 0
only for the call to bind but not for subsequent calls to sctp_bindx,
so replace with the port number assigned by the operating system.
Add checks for in6addr_any and in6addr_loopback

These variables are normally declared by <netinet/in.h>,
but for instance not on Windows 7, SDK 7.1.

Work around that by using IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT
if present, fallback to using :: and ::1.
Allow mixed IPv4 and IPv6 addresses to sctp_bindx

Also allow mixed address families to bind, since the first address on
a multihomed sctp socket must be bound with bind, while the rest are
to be bound using sctp_bindx.

At least Linux supports adding address of mixing families.

Make inet_set_faddress function available also when HAVE_SCTP is not
defined, since we use it to find an address for bind to be able to mix
ipv4 and ipv6 addresses.
[common_test] Handle all ssh_cm messages in ct_netconfc:handle_msg/2

Only {data,...} and {closed,...} was handled, which caused the test to
fail with with a function_clause crash in ct_netconfc when
{exit_status,...} was received. This has been corrected.
Update user config to use nested tuple keys

ct:get_config and ct:require can now use nested tuples
to fetch data from user configuration. E.g.

ct:get_config({localhost,ip,v4}).

This introduces a backwards incompatability with how names
are associated with keys when using require/2. E.g.

ct:require(a_name,{localhost,ip}) will associate a_name with ip
instead of localhost.
Remove config option from common_test args

This is needed because it is no longer ignored by common_test
Add more cross reference links to ct docs
ssl & public_key: Workaround that some certificates encode countryname as utf8 and close down gracefully if other ASN-1 errors occur.

The reason certificate_unknown that is used as ALERT for ASN-1 encoding failure is described as:
      Some other (unspecified) issue arose in processing the
      certificate, rendering it unacceptable.
Update vsn.mk files
Merge branch 'peppe/common_test/update_vsn_files' into maint

* peppe/common_test/update_vsn_files:
  Update vsn.mk files