Add systemd socket activation for epmd.

Check for systemd libraries and headers in confgiure.
Add -systemd option enabling waiting for sockets from systemd.
Fix typo in common_test documentation for the -join_specs flag
ensure argv large enough for all possible args
asn1ct_check: Let asn1_error/3 throw its result

Since most calls to asn1_error/3 throw its result, it makes more
sense to let asn1_error/3 itself throw the error tuple. Add the
return_asn1_error/3 to return the error tuple to use when we don't
want to throw it.
asn1ct_check: Remove unreachable clauses handling {identifier,_,_}

A named number list as used for ENUMERATED and INTEGER can never
have an {identifier,...} tuple in its third position like this:

   {'NamedNumber',Id,{identifier,_,_}}

because asn1ct_parser2:parse_NamedNumber/1 will always replace
an identifier tuple with an #Externaluereference{} record.
asn1ct_check: Rewrite error checking for INTEGER and BIT STRING

The error checking code for INTEGER and BIT STRING was broken,
since it built an error tuple that was never returned.

Rewrite the error checking code, sharing most of the code between
INTEGER and BIT STRING. Make sure that we test for both duplicated
names and number, as well as for negative bit numbers for
BIT STRING.

This rewrite will eliminate two dialyzer warnings for unmatched
returns.
asn1ct_check: Clean up error checking for INSTANCE OF

This will also eliminate a dialyzer warning for unmatched returns,
and increase the coverage.
Clean up reporting of errors in IMPORTS
shell_SUITE: Give bs_match_bin_SUITE/1 more time

Compiled with --enable-native-libs, 2 minutes may not be enough
time on a slow computer to finish bs_match_bin_SUITE/1.
prim_file_SUITE: Remove the short 5 seconds timetrap timeout

Several tests cases would typically fail because of a timetrap
timeout on our older test machines running with a Linux kernel
with a lower version than 2.6.30 and the ext3 file system.

In http://lwn.net/Articles/328363/, the author desribes peformance
issues with ext3 that were fixed in 2.6.30.

Since common_test nowadays has a default timetrap timeout, there
is no need to explicitly set a timeout in each test case (except
for prolonging the default timeout).
Attempt to provide more information if a test case fails
cover_SUITE:reconnect/1: Let the other side initiate the disconnect

The reconnect/1 test starts another node and takes down the connection
to it for a while. However, it has been in observed in our daily builds
that sometimes a "spontaneous" re-connection occurs.

I think that it because of the call to rpc:cast/3 which internally
will set the group leader for the remote process to a process on
the test_server node. It seems that sometimes the group_leader/2
call will re-establish the connection. Unfortunately, I have not
been able to force this to happen by inserting delays in the rpc
module, so it it still just an hypothesis.

However, letting the other node do the disconnection does seem to fix
the problem and intuitively that should be safer way to do it because
the group_leader/2 call and the disconnection will be executed
sequentially on the same node instead of concurrently from two
different nodes.
Added a condition to ignore empty Set-Cookie header and tests for it
Add better specs in hipe_pack_constants and cleanup
Move some common code in hipe_pack_constants

All backends (e.g. arm, ppc, sparc, x86) share the same code for the following
functions:
  * find_const/2,
  * mk_data_relocs/2, and
  * slim_sorted_exportmap/3

This commit moves those definitions (along with some helper functions) in
misc/hipe_pack_constants.erl and adds the appropriate specs. This is a
structural change; no change in semantics intented.
Add a BIF that only returns the atom ok

A call in llvm_fix_pinned_regs/0 is inserted in the beginning of LLVM unwind
blocks (i.e. code executed when an LLVM 'invoke' call triggers an exception)
in order to get the BP and SP registers right. This is needed because LLVM
exception handling doesn't provide the return value (that also contains the
values for these registers, as defined in the HiPE Calling Convention for
LLVM) on the 'landingpad's.
Add support for llvm unique symbols in hipe_gensym

This is used by the LLVM backend in order to generate unique names for
temporary SSA values and functions.
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.