fix escript archive symlinked across drives

real_path method used while prim loading archive files was not taking into account
the fact that windows directory symlinks can be across different drives
(eg. c:\tmp\test is a symlink to j:\tmp\test). when performing a path split the drive
precedes the symlink, but that has be rewritten also since it's different. This issue
never arises in Unix since obviously there are no drives
Tweak comments
Add diameter_dbg:sizes/0

To return sizes of named ets tables.
Add (process) info tuple to diameter:service_info/2

To show process_info of interest. This is not yet documented since it
may well change.
Add info item for diameter:service_info/2

To extract only process info from connections info, which can be useful
to reduce the amount of information returned.

Choose 'info' for the item since process_info is more than one word: all
others are one. Don't choose memory since it's too specific: might want
to use it for more.
Rewrite merge of clause variable tables (in case, try, etc)

erl_lint:icrt_export/4 has been rewritten to make the code really
follow the scoping rules of Erlang, and not just in most situations
by accident.

 * The function should not depend on calling unused_vars/3 because that
   function does not return variables which begins with an underscore,
   something that only matters when emitting warnings. This could cause
   a compiler crash if such a variable was reused afterwards.

 * The variable tables from each clause are first merged together,
   lists:merge/1 is safe to use because they are orddicts and thus
   already sorted. This list is then traversed parallelly to the old
   variable table, again taking advantage of their sorted order.

 * The function does not emit warnings itself, there is no need to pass
   around the lint state. In the same vein, vtunsafe/3 has been rewritten
   to do more things by itself, given that all of its calls were similar.
   Finally, compiled-out code has been removed.

 * This reverts the code in 9ce148b1059e4da746a11f1d80a653340216c468,
   which fixed the compiler crash and made erl_lint remember unsafe
   variables, but forget about unused variables in the process.

 * Other places of the code which relied on the old clunky behaviour were
   also updated: unused and unsafe old variables are forgotten when
   merging fun clauses and boolean shortcircuiting operators do not rely
   on icrt_export/3 anymore.
Fix some spelling misstakes
Fix counting of outgoing requests

Commit df19c272 broke this in avoiding counting on arbitrary keys.
It didn't break it sufficiently for the only counters usage in the test
suites to fail however: watchdog counters worked as intended, but no
others, not even CER and DPR. More testcases are needed.

This commit does change/fix the previous semantics somewhat:

- Retransmissions are no longer counted. This previously made it
  impossible to distinguish between these and unanswered requests, since
  both counted as an outgoing request. There should probably be a
  retransmission counter but it should be distinct from the sent request
  counter.

- The counting is always on the node from which diameter:call/4 is
  invoked, not the node on which the transport resides, as was previously
  the case. (Although they're typically one and the same.)

Note that none of these semantics are documented as yet, so we're not
changing a documented interface.
Count request retransmissions

As mentioned in the parent commit. The {Id, send, retransmission}
key is of the same form as the {Id, send|recv, error} key used for
encode/decode errors.
Count relayed messages on {relay, Rbit}

Instead of grouping them with 'unknown'. These messages were keyed on
{ApplicationId, CommandCode, Rbit} prior to commit df19c272, but
distinguishing between the relay application and others is probably more
useful.

The only reason for not including the R-bit in the unknown key is that
the key is also used elsewhere, and relay is an expected case while
unknown isn't.
Map binary process info to a reference/byte count

That is, instead of including the list in a diameter:service_info/2 info
tuple, only include the number of references and the number of bytes
referenced. The list itself can be quite large and typically isn't that
interesting, at least not to a diameter user.
fix indentation, add comment describing windows symlink creation assumption
crypto: Add valgrind suppression for RC4

Invalid read of size 8
(Address 0x61f7730 is 144 bytes inside a block of size 151 alloc'd)
Suspected: rc4_encrypt_with_state:2321 (-> 0x11B168F5) [crypto.c]
Stackdump:
 RC4:??? (-> 0x11DAA060) [/lib/libcrypto.so.0.9.8]
 rc4_encrypt_with_state:2321 (-> 0x11B168F5) [crypto.c]
 process_main:3524 (-> 0x58D975) [beam_emu.c]
 sched_thread_func:7672 (-> 0x4C131E) [erl_process.c]
 thr_wrapper:106 (-> 0x656F68) [ethread.c]
 start_thread:300 (-> 0x57019C9) [pthread_create.c]
Rewrite manager net_if for IPv4+IPv6
Write manager IPv4+IPv6 test
Improve testcase test for IPv6 capable host
Avoid test case known to fail
Implement IPv4+IPv6 in MT manager
Remove decommented code and clean up diff
Clean up config error handling and negative results