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).
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.
Fix close of suite when end_per_suite is skipped
Correct formating in exit error messages

Ensure displayed sizes are not negative.
Allow non configlist returns from other cths
Fix typo error in selected decode function
Fix bug where auto skipped tcs would disappear
Use process macro instead of array
Correct guard matching in gen_server:enter_loop/4
to match global scope in ServerName without timeout.

OTP-10130
Change testcase of gen_server:enter_loop/4 with global scope
to match on result of a gen_server:call/2
[erts,kernel,stdlib] fix escript/primary archive reloading

If the mtime of an escript/primary archive file changes after being
added to the code path, correctly reload the archive and update the
cache.

The existing code didn't consider that it might be a zip archive and failed:

    =ERROR REPORT==== 3-Aug-2011::09:21:21 ===
    File operation error: bad_central_directory. Target:
    /escript_archive/module.beam. Function: get_file. Process: code_server.

Thanks David Reid and Hakan Mattson.
escript_SUITE: remove gratuitous space
Fix erl_prim_loader errors in handling of primary archive

The following errors have been corrected:

* If primary archive was named "xxx", then a file in the same
  directory named "xxxyyy" would be interpreted as a file named yyy
  inside the archive.

* erl_prim_loader did not correctly create and normalize absolute
  paths for primary archive and files inside it, so unless given with
  exact same path files inside the archive would not be found. E.g. if
  escript was started as /full/path/to/xxx then "./xxx/file" would not
  be found since erl_prim_loader would try to match /full/path/to/xxx
  with /full/path/to/./xxx. Same problem with ../.

* Depending on how the primary archive was built,
  erl_prim_loader:list_dir/1 would sometimes return an empty string
  inside the file list. This was a virtual element representing the
  top directory of the archive. This has been removed.

Thanks to Tuncer Ayaz and Shunichi Shinohara for reporting and
co-authoring corrections.
Add comments to make erl_prim_loader primary archive handling more readable

This commit introduces no functional change. It only adds comments and
changes some function/variable names.
Add tests for problems with handling of primary archive

Thanks to Tuncer Ayaz for co-authoring.
Update preloaded

erl_prim_loader.beam
Merge branch 'gustav/stdlib/gen_server_enter_loop_global_scope/OTP-10130' into maint

* gustav/stdlib/gen_server_enter_loop_global_scope/OTP-10130:
  Change testcase of gen_server:enter_loop/4 with global scope to match on result of a gen_server:call/2
  Correct guard matching in gen_server:enter_loop/4 to match global scope in ServerName without timeout.
Merge branch 'maint'
Fix a bug regarding spaces in C function prototypes

Thanks to Richard O'Keefe for pointing the bug out.
ic: add space before '*' in some function prototypes