Fix port leaking after controlling_process(Port, self())

Add case to handle the situation when someone call
{gen_tcp,gen_udp}:controlling_process(Port, self()). Also improve spec
and doc from gen_udp and gen_sctp for controlling_process/2.

To reproduce the issue, open an UDP port:

4> {ok,Port} = gen_udp:open(9000, [binary]).
{ok,#Port<0.587>}
5> gen_udp:controlling_process(Port, self()).
ok

Simulate error:

6> 1=2.
** exception error: no match of right hand side value 2

Here is the leak:

7> inet:i().
Port Module   Recv Sent Owner    Local Address Foreign Address State
Type
581  inet_udp 0    0    <0.31.0> *:cslistener  *:*             BOUND
DGRAM
ok
Add testcase for controlling_process(P,self())
[observer] Remove appmon ref when node goes down
Fix crash related to contract checking

When "collapsing" heads of list elements from a list's tail into the list's
head the new head can be different.
Don't rewrite unchanged PLT
Correct handling of type names in contracts

Variables in contracts can either be true type variables or simply names for
types thet are defined in the 'when' clauses. Consider the following example:

-spec foo(X, Options) -> {ok, X} | error when Options :: [{atom(), boolean()}].

Here X is a true variable whereas Options is a name for a type that is defined
in the when clause.

'when' clauses may further use names on the right side. These were not treated
properly by Dialyzer and could be generalized to the term() type. This patch
fixes this issue.

A further issue is the treatment of true type variables, but this is left for
another patch.
erts: Add valgrind suppression for async thread bound data

This leak is harmless as the beam process is about to exit anyway.
Improved explanation of depth option
[observer] Ask epmd for local nodes

Default menus include other erlang nodes on the local node
[observer] Fix dead processes

Again sigh
[observer] Fix gui-crash when table_copies couldn't be spawned
[observer] Allow bifs when selecting functions for trace

Sigh (currently) bifs are not included in:
Mod:module_info(functions) only in Mod:module_info(exports).

Erlang compiler bug?
[observer] Fix scrollbars in app-viewer
otp_SUITE: Remove broken filtering of megaco calls

The call to the megaco_filter/1 function is broken. It will cause
a badmatch if the megaco_filter/1 would return a different list than
its argument. Since the test case has not failed, megaco_filter/1
has no effect and can be removed.
otp_SUITE: Ignore calls to dialyzer if the entire application is missing
ts: Recognize Windows 7
The channel id in a channel failure message, sent to the peer, is now in all cases the remote channel id
[observer] Add more popup menus and info selected pid
Merge branch 'sa/dialyzer-contract-variables' into maint

* sa/dialyzer-contract-variables:
  Correct handling of type names in contracts
  Don't rewrite unchanged PLT
  Fix crash related to contract checking

OTP-10083
Merge branch 'dgud/observer/bug-fixes/OTP-10075' into maint

* dgud/observer/bug-fixes/OTP-10075:
  [observer] Add more popup menus and info selected pid
  [observer] Fix scrollbars in app-viewer
  [observer] Allow bifs when selecting functions for trace
  [observer] Fix gui-crash when table_copies couldn't be spawned
  [observer] Fix dead processes
  [observer] Ask epmd for local nodes
  [observer] Remove appmon ref when node goes down