Make term_to_binary yield (trap).
Make all steps ofterm_to_binary work in chunks and yield

Rewrite and extend of Happi's initial work

Extra_root to process structure to enable GC of state - Changed the
process structure to point to a separate struct, the struct also
contains a destructor function to allow for proper cleanup.

Rewrote encode_size_struct and enc_term to have internal versions with
reduction counters which will result in interrupt for later restart
when the counter reaches zero - removed the EWA_STACK from Happis
version and directly save the ESTACK's and WSTACK's in the above
mentioned struct (or array thereof) that are pointed out from the
process structure. The destructor will take care of the deallocation
in case of process death.

Added ESTACK and WSTACK macros to save and restore stack and to change
allocator, which makes the previously mentioned stack-save work.

Rewrote enc_term to not store pointers on the stack, and use one WSTACK
for commands etc and another ESTACK for Eterms - Slightly different than
Happis version to make halfword code simpler.

Rewrote encode_size_struct2 so that it does not store pointers on the
stack, also switched to ESTACK instead of WSTACK, this also handles
halfword correctly.

Added interfaces for chunkwise compression, that are
used from term_to_binary/2 when the compressed option is given.
Teach external.c to handle reallocs before compression
Teach erl_gc:offset_rootset about extra_root
term_to_binary: Remove debug code and set production trap levels
Add testcase to stress extra_root
Merge branch 'pan/happi/yield_in_term_to_binary' into maint

* pan/happi/yield_in_term_to_binary:
  Add testcase to stress extra_root
  term_to_binary: Remove debug code and set production trap levels
  Teach erl_gc:offset_rootset about extra_root
  Teach external.c to handle reallocs before compression
  Make all steps ofterm_to_binary work in chunks and yield
  Make term_to_binary yield (trap).

OTP-11163
crypto: Fix bug with takover of EC resource type

enif_open_resource_type() must be called even during repeated loading
of same library. Otherwise the resource type will be deallocated
when the old module instance is purged.
erts: Add the +sfwi system flag

+sfwi Interval
    Set scheduler forced wakeup interval. All run queues will be scanned
    each Interval milliseconds. While there are sleeping schedulers in
    the system, one scheduler will be woken for each non-empty run queue
    found. An Interval of zero disables this feature, which also is the
    default.

    This feature has been introduced as a temporary workaround for lengthy
    executing native code, and native code that do not bump reductions
    properly in OTP. When these bugs have be fixed the +sfwi flag will
    be removed.
Merge branch 'sverk/crypto-upgrade-resource-bug' into maint

* sverk/crypto-upgrade-resource-bug:
  crypto: Fix bug with takover of EC resource type
Merge branch 'maint'
Merge branch 'rickard/+sfwi/OTP-11164' into maint

* rickard/+sfwi/OTP-11164:
  erts: Add the +sfwi system flag
Merge branch 'maint'

* maint:
  erts: Add the +sfwi system flag
Update primary bootstrap
Update primary bootstrap appup files
Merge branch 'maint'
Update preloaded modules
Merge branch 'maint'
Update copyright years
Merge branch 'maint'