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
Allow the source to be set when compiling forms

This commit adds a source option to compile:forms() that
sets the source value returned by module_info(compile).
Add testcase for controlling_process(P,self())
dyntrace.erl comment cleanup and unused function removal

Change the module-level docs to give complete step-by-step instructions
for using the `dyntrace:p()` trace function.  Also, remove the unused
`scaff/0` function.
[snmp/manager] snmpm:log_to_io/6 did not use the LogName argument.

Cut-and-paste error.

OTP-10066
[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
Fix rpc:call/5 for local calls with a finite Timeout

-module(rpc_example).
-export([f/0, should_return_ok/0]).

should_return_ok() ->
    {badrpc, timeout} = rpc:call(node(), ?MODULE, f, [], 5000),
    ok.

f() ->
    Ref = make_ref(),
    receive
        Ref -> ok
    end.
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