erts: Move compiler flags generation

Move the call to utils/make_compiler_flags to after _create_dirs
to make sure that the dirs are created before we try to generate files
in there. This seems to work with parallel make as well, but I cannot
find any documentation that says that it should or should not work.
erts: Fix resolve of generated files for depend
Handle nonempty list types in docgen_edoc_xml_cb
Handle map types in docgen_edoc_xml_cb
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
Substitude uses of lists:reverse(L1) ++ L2 with lists:reverse(L1, L2)
Introduce and use a hipe_icode:icode() type
Add specs for exported functions (to shut off a warning) and types in some record fields
Cleanup and make sure warnings are treated as errors
ensure argv large enough for all possible args
Add ETHR_FORCE_INLINE define to hide compiler specific directives

Some win32 specific code does not compile with gcc (mingw-w64) since
'__forceinline' is not supported by gcc. This can be avoided by
defining a new macro ETHR_FORCE_INLINE similar to ETHR_INLINE.
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