Extend RTL API to support the LLVM backend

Extend the 'rtl_var' definition to host liveness information needed for
a simple liveness analysis performed by the LLVM backend.

Also, uncomment some function definitions (mostly simple accessors) that
are already there and are useful for the translation of RTL code to LLVM
assembly.

Finally, extend the RTL 'call' instruction with the 'normalcontinuation'
field which is required for translating calls that are in the scope of
an exception handler. This extra field is required in order to point to
a new basic block which will hold the 'unwind label' of LLVM's invoke
instruction. While the 'unwind label' is semantically equivalent with
the 'failcontinuation', in LLVM this block must have a 'landingpad'
instruction. The problem arises by the fact that an RTL 'continuation'
block can also be accessible by other paths in the RTL CFG, and so
cannot be marked as a landing pad. To overcome this issue we create a
new block (the 'normalcontinuation') which is used as the 'unwind label'
of LLVM's invoke instruction and which will eventually transfer control
to the 'continuation' block.
Implement the LLVM backend
Support the LLVM backend in HiPE

Add flags to enable and use the LLVM backend:
  * to_llvm: use the LLVM pipeline for compilation (default optimization level
  is O3),
  * llvm_save_temps: save the intermediate files in current directory in order
  to be able to debug or optimize the LLVM assembly,
  * {to_llvm, O}: set the optimization level of LLVM opt and llc tools.

Add some debug support to the loader; no semantic change intented.
Properly detect reused boolean values in beam_bool

The following code could crash the compiler:

	f(X = true) when X or true or X -> ok.

Reported-by: Ulf Norell
Remove a superfluous echo in the emulator Makefile

It pollutes the output of silent rules.
inets: Fix incorrect argument order

Wrong order of arguments in httpc_handler:update_session/4 error
handling code  should not result in bad_argument error making
stack trace unusable.
Use closefrom(2) when available in child_setup
Support identity transfer-encoding in httpc

> The default (identity) encoding; the use of no transformation whatsoever.

> The Internet Assigned Numbers Authority (IANA) acts as a registry for
> transfer-coding value tokens. Initially, the registry contains the
> following tokens: "chunked" (section 3.6.1), "identity" (section 3.6.2),
> "gzip" (section 3.5), "compress" (section 3.5), and "deflate" (section 3.5).

Reported-by: Andrew Houghton
Properly handle redundant boolean clauses in sys_core_fold

Boolean case expressions with redundant clauses could make the compiler
crash:

    case X == 0 of
        false -> no;
        false -> no;
        true -> yes
    end.

Reported-by: Ulf Norell
remove reference to dbg_wx_edit* modules that don't exist
enable enif_send to work from a dirty scheduler
erl_interface: Fix mem leak in ei_decode_encode_test
erl_interface: Add map support in ei_skip_term
erl_interface: Add test for ei_skip_term of container terms
Correct file:set_cwd/1 typespec

file:set_cwd/1 accepts binaries as arguments, however the binaries
must be properly encoded as per file:native_name_encoding/0.

Also update the note under no_translation error to refer that passing
a ISO-latin-1 encoded binary under any unicode file name encoding.
erts: Document external format for maps (MAP_EXT)
Replace local mapl/2 (Erlang < 5.0) unique call by a LC
erts: Clarify escript's encoding of the I/O-server

A note has been added that clarifies that the encoding of
the I/O-server has to be set explicitly, irrespective of
any encoding comment.
Merge branch 'nox/compiler/v3_core-mismatched-apply'

* nox/compiler/v3_core-mismatched-apply:
  Do not emit blatantly illformed apply expressions in core_inline
Update primary bootstrap