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.
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]
Fix HiPE debug lock checking on OS X 64bit

Position-independent code is mandatory on OS X. We use r11 as an intermediate
register to fill BIF_P->hipe.bif_callee. This fixes the following error when
doing `make debug FLAVOR=smp`:

clang -cc1as: fatal error: error in backend: 32-bit absolute addressing is not supported in 64-bit mode
Install internal hrl files when necessary

Sometimes we install *.erl files. Some these files include a private
*.hrl files, so in order to make these *.erl files usable we have to
install these private includes as well.

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
erts: Refactor binary allocation interface to also initialize Binary

except the reference counter 'refc', as different callers
have different strategies regarding the lifetime of the binary.
erts: Fix gdb command etp-carrier-blocks for 32-bit
let Java compiler output all warnings
Do not rely on macros with implicit vars

This commit also provides the benefit that the Label argument
in gen:call/3 is no longer used, as we can access the sender
in the From argument. Therefore, we should be able to change
the Label to something more relevant in the future.
stdlib: Fix maps type pretty printing

Properly align union typed assoc values.
Fix broken deprecation warnings in ssh application
edoc, erl_docgen: Enhance internal map type format
Remove untested option 'generic_debug' from gen_server

This undocumented option makes an init:get_argument/1 call every time a gen_server
is started.

Reported-By: James Fish
Fixed typo: was/were
erts: Fix erts app-file
Merge branch 'sverk/valgrind-RC4-suppression'

* sverk/valgrind-RC4-suppression:
  crypto: Add valgrind suppression for RC4
Merge branch 'sverk/bin-alloc-refactor'

* sverk/bin-alloc-refactor:
  erts: Fix gdb command etp-carrier-blocks for 32-bit
  erts: Refactor binary allocation interface to also initialize Binary
Next expected version... (may change)
Add note about adjacent separator characters in string:tokens/2

Adjacent separator characters are treated as one in
string:tokens/2. This was shown in the example in the reference manual
but it was not written in words. A note about this is now added.
ssh: Avoid timeout of init_per_test_case on some platforms

Also some code cleanup
[ct] Fix path of cover export/import files

5a3c4668 accidentially changed the base directory for cover export
and import files, if given as relative paths. This commit fixes this -
the files are again expected to be given relative to the directory of
the cover spec file itself, or else as absolute paths.