Silence a misleading warning with some comprehensions

When compiling comprehensions with generators which are foldable to
'true', a misleading warning is emitted by sys_core_fold because a
clause resulting from the compilation of the comprehension to Core
Erlang is not marked as generated by the compiler.

An example of such a comprehension is [ true || true ].
Bootstrap
Wrap eunit macros into begin ... end blocks

This makes typos such as missing commas between two assertions
(e.g. ?assert(true) ?assert(true)) syntax errors instead of silently
compiling and failing with a badfun error at runtime.

This won't break any existing code as parenthesed expressions and blocks
have the same precedence and none of these macros can be used as patterns.
Restrict inlining of local fun references

Local fun references look like plain old variables in the Core Erlang
AST but should not be treated as such. Inlining of such expressions is
now restricted to application contexts as a local fun reference should
never occur in a guard.

This is not perfect as it forbids inlining in some safe situations, but
that is still better than a compiler crash.
Added primary bootstrap
run_erl: Redirect standard streams to /dev/null

Like in epmd and erlexec. Otherwise "run_erl" fails on some platforms
when called with the "-daemon" option, printing this error:

  "Cannot dup"
Fix some errors in the inets documentation
Fix compilation on Solaris

Trying to compile R16B01 on SmartOS resulted in following errors:

    gcc -c -o ../priv/obj/i386-pc-solaris2.11/ferrule.o -Werror=return-type  -g -O2 -I/root/otp_src_R16B01/erts/i386-pc-solaris2.11  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-tree-copyrename  -DHAVE_CONFIG_H  ferrule.c
    ferrule.c:53:1: error: return type defaults to 'int' [-Werror=return-type]
    ...
    gcc -c -o ../priv/obj/i386-pc-solaris2.11/mod_syslog.o -Werror=return-type  -g -O2 -I/root/otp_src_R16B01/erts/i386-pc-solaris2.11  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-tree-copyrename  -DHAVE_CONFIG_H  mod_syslog.c
    mod_syslog.c:50:1: error: return type defaults to 'int' [-Werror=return-type]
    mod_syslog.c: In function 'make_exit':
    mod_syslog.c:136:5: warning: incompatible implicit declaration of built-in function 'exit' [enabled by default]
    mod_syslog.c: In function 'main':
    mod_syslog.c:131:1: error: control reaches end of non-void function [-Werror=return-type]

Adding return values and types to `main` functions in `mod_syslog.c` and
`ferrule.c` fixed the build.
Merge branch 'nox/fix-fname-inlining/OTP-11211' into maint

* nox/fix-fname-inlining/OTP-11211:
  Added primary bootstrap
  Restrict inlining of local fun references
Merge branch 'maint'

Conflicts:
	bootstrap/lib/compiler/ebin/cerl_inline.beam
Merge branch 'nox/fix-comp-warnings/OTP-11212' into maint

* nox/fix-comp-warnings/OTP-11212:
  Bootstrap
  Silence a misleading warning with some comprehensions
Merge branch 'maint'

Conflicts:
	bootstrap/lib/compiler/ebin/v3_core.beam
Merge branch 'weisslj/run-erl-redirect-dev-null/OTP-11215' into maint

* weisslj/run-erl-redirect-dev-null/OTP-11215:
  run_erl: Redirect standard streams to /dev/null
Merge branch 'maint'
Merge branch 'nox/eunit-macros-blocks' into maint

* nox/eunit-macros-blocks:
  Wrap eunit macros into begin ... end blocks
Merge branch 'maint'
Merge branch 'weisslj/fix-inets-doc-errors/OTP-11210' into maint

* weisslj/fix-inets-doc-errors/OTP-11210:
  Fix some errors in the inets documentation
Merge branch 'maint'
Change default of erlang:halt/2 to the documented

Bug reported by Jose Valim on the erlang-bugs mailing list:
erlang:halt(0,[]) does not flush as advertised in the documentation.
Should be the same as erlang:halt(0,[{flush,true}]), but is in fact
the same as  erlang:halt(0,[{flush,false}]).
Fix UTF8String encode

To accept any nested list of codepoints and binaries. A list containing
a binary was previously misinterpreted and the documentation was
incomplete.

Also, rework codec suite slightly to be able to specify values for which
decode o encode is the identity map, for which encode should succeed,
and for which encode should fail.