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
Remove a superfluous echo in the emulator Makefile

It pollutes the output of silent rules.
Replace local mapl/2 (Erlang < 5.0) unique call by a LC
test_server: Allow init_per_ function to throw skip

Allow all init_per_[suite|group|testcase] to throw (or exit)
{skip, Reason} to explicitly ignore tests without failing.

It is easier to catch it in one place instead of writing a try
in each init_per_* to return {skip, Reason}.
erts: Fix is_map/1 spec
erts: Document map guard functions

* erlang:is_map/1
* erlang:map_size/1
wx: Fix configure for win64 with wxWidgets-3.0
wx: Fix listCtrl sort callback
Fix pick_peer case clause failure

In the case of {call_mutates_state, true} configuration on the service
in question, any peer selection that failed to select a peer resulted in
a case clause failure in diameter_service:pick_peer/5, when the call to
the service process returned false. This was noticed in the case of a
peer failover in which an alternate peer wasn't available.

The explicit matching is intentional, to match exactly what's expected.
Fix unicode path failure in diameter_make:codec/2

A dictionary path containing a unicode codepoint > 255 caused the
function to fail when iolist_to_binary/1 was applied to the path.
Adapt dictionary compilation to new default encoding

The problem is that the change in default encoding to utf8 in 17.0, in
commit 00e42967, changes the behaviour of erl_parse:abstract/1, which is
used by the dictionary compiler to turn terms into abstract code. In
particular, it transforms the orddict representation of a parsed
dictionary to contruct the return value of a dictionary module's dict/0
function. This orddict contains various lists, one of which is a list of
tuples of the form

  {Name, Code, [VendorId], [Avp]}

where Name is an ASCII string and VendorId is a non-negative integer.

Using erl_parse:abstract/2 instead allows a string encoding to be
specified but regardless of what encoding is used, the result of
transforming our tuple might not be what we really want, which is for
Name to always be represented as a string form and [VendorId] to always
be represented as a cons form: the [VendorId] will always end up as a
string form if the integers are small enough. The only way around this
is to transform the tuple bit by bit, but modifying the code to do this
is quite a lot of work, for not much gain: it would be nice to produce
more readable output but nothing stops working without it.

This commit restores the pre-17.0 conversion by explicilty specifying
latin1 as the string encoding to erl_parse:abstract/2. The utf8 encoding
broke the compilation of some dictionares since unicode strings aren't
expected when writing the generated code to file.

Note that the latin1 encoding does reasonably well in practice, although
it mangles the Ericsson Vendor Id list [193] into a "LATIN CAPITAL
LETTER A WITH ACUTE". The utf8 encoding does worse, mangling the 3GPP
Vendor Id 10415 into "DESERET CAPITAL LETTER CHEE". An ascii encoding
would do better than latin1 but doesn't yet exist. (Encoding isn't
really what the option is. It's a string predicate: if the predicate is
true then represent as a string form, otherwise a cons form.)
Ensure generated modules are properly included in the Emakefile
Add support for testing the LLVM backend too
ose: Restore the owner of the signal

As any scheduler process can consume any message we have
to make sure that the message is owned by the scheduler
before returning it in erl_drv_ose_get_signal.
ose: Reset busy port when pdq empty
wx: Fix possibility to fetch early open msgs on mac

Mac doesn't add clicked files to program arguments, a callback
is invoked instead, send msgs to erlang about them.
wx: Fix memory garbage collector
Change spawn/1 + monitor/2 to spawn_monitor/1 to avoid deadlock

crashdump_viewer:progress_pmap did sometimes hang since is spawned a
process, then monitored it and waited for a specific DOWN
message. When the process' work was very fast, it would exit before
the call to monitor and the DOWN message would contain reason 'noproc'
instead of the expected {pmap_done,Result}.

By doing spawn_monitor/1 instead, the monitor is always set before the
process exits so the deadlock is avoided.
Fix crash in crashdump_viewer when node has multiple creations

A node to which we have references to multiple instances (creations)
will have an information line in the crashdump like this:

Creation: 1 2 ...

This would earlier crash because crashdump_viewer would try to do
list_to_integer on the value after "Creation: ". This is now
corrected.

This correction also helps the case when the emulator is debug
compiled, since the line could then be

Creation: 1 (refc=1)