Remove ^L characters hidden randomly in the code. Not those used in text files as delimiters.

While working on a tool that processes Erlang code and testing it against this repo,
I found out about those little sneaky 0xff. I thought it may be of help to other
people build such tools to remove non-conforming-to-standard characters.
Add dict:is_empty/1 and orddict:is_empty/1

dict:size/1 runs in constant time, but orddict:size/1 does not.  With
this change, the two modules stay API compatible and gain a
constant-time function for checking whether a dictionary is empty.
Teach erlc to handle UTF-8 file names

The 'erlc' program passes options to the 'erl' program using
the '-s' option. The '-s' option causes all options to be converted
to atoms, which implies that UTF-8 file names may not be given on
the command line.

We could solve just the UTF-8 problem by using '-run' and change
the erl_compile module to expect strings instead of atoms, but since
that is an incompatible change, we should take the opportunity to
make more incompatible changes while we are at it.

Specifically, when 'erlc' was first written, there was no way to pass
command line arguments starting with '-' to Erlang, so 'erlc' did all
parsing of arguments and translated options to atoms starting with a
'@' character (for example, -I was translated to @i). Since then,
the '-extra' option has been introduced which allows us to pass
anything to Erlang at the end of the command line.

Therefore, while at it, do the minimum of necessary command line
parsing in the 'erlc' program (e.g. the '-smp' option), passing the
command line essentially unchanged to 'erl' using the '-extra' option,
and rewrite the option parsing in Erlang.
Update version numbers for R16B03 development
Merge branch 'maint'
stdlib: extended binary_module_SUITE to assure badarg for OTP-11350
Merge branch 'msassak/empty-pattern-badarg/OTP-11350' into maint

* msassak/empty-pattern-badarg/OTP-11350:
  stdlib: extended binary_module_SUITE to assure badarg for OTP-11350
  Check all pattern arguments passed to binary:matches/2
Merge branch 'maint'
Change 'recive' to 'receive' in gen_server.erl

A small spelling correction merely; no functionality change.
Merge branch 'fenollp/treewide_remove_unexpected_0xff/OTP-11323' into maint

* fenollp/treewide_remove_unexpected_0xff/OTP-11323:
  Remove ^L characters hidden randomly in the code. Not those used in text files as delimiters.
Merge branch 'maint'
Merge branch 'blt/gen_server-typo/OTP-11398' into maint

* blt/gen_server-typo/OTP-11398:
  Change 'recive' to 'receive' in gen_server.erl
Merge branch 'maint'
Spec for atan2 should be atan2(Y, X), not atan2(X, Y)
Merge branch 'mh/dict_orddict_is_empty/OTP-11353'

* mh/dict_orddict_is_empty/OTP-11353:
  Update primary bootstrap
  Add dict:is_empty/1 and orddict:is_empty/1
Add XML marker for regexp syntax
Merge branch 'maint'
Merge branch 'asterite/atan2_spec/OTP-11465' into maint

* asterite/atan2_spec/OTP-11465:
  Spec for atan2 should be atan2(Y, X), not atan2(X, Y)
Merge branch 'maint'
Execution of system tasks in context of another process

A process requesting a system task to be executed in the context of
another process will be notified by a message when the task has
executed. This message will be on the form:
  {RequestType, RequestId, Pid, Result}.

A process requesting a system task to be executed can set priority
on the system task. The requester typically set the same priority
on the task as its own process priority, and by this avoiding
priority inversion. A request for execution of a system task is
made by calling the statically linked in NIF
erts_internal:request_system_task(Pid, Prio, Request). This is an
undocumented ERTS internal function that should remain so. It
should *only* be called from BIF implementations.

Currently defined system tasks are:
* garbage_collect
* check_process_code

Further system tasks can and will be implemented in the future.

The erlang:garbage_collect/[1,2] and erlang:check_process_code/[2,3]
BIFs are now implemented using system tasks. Both the
'garbage_collect' and the 'check_process_code' operations perform
or may perform garbage_collections. By doing these via the
system task functionality all garbage collect operations in the
system will be performed solely in the context of the process
being garbage collected. This makes it possible to later implement
functionality for disabling garbage collection of a process over
context switches.

Newly introduced BIFs:

* erlang:garbage_collect/2 - The new second argument is an option
  list. Introduced option:
  * {async, RequestId} - making it possible for users to issue
    asynchronous garbage collect requests.

* erlang:check_process_code/3 -  The new third argument is an
  option list. Introduced options:
  * {async, RequestId} - making it possible for users to issue
    asynchronous check process code requests.
  * {allow_gc, boolean()} - making it possible to issue requests
    that aren't allowed to garbage collect (operation will abort
    if gc should be needed).
  These options have been introduced as a preparation for
  parallelization of check_process_code operations when the
  code_server is about to purge a module.