Add support for larger integer ranges in per encode/decode

Encoding and decoding of integer ranges can now be done
with an upper bound larger than the previous limit of 16^10.
The new upper bound in per encoding and decodings for constrained
whole numbers is 2^2040 (close to 16^508) which is the limit if
the length field encoding in the encoding of a constrained
whole number is limited to a single octet.

Related support seq: seq12060
Keep encoded octets of constrained whole number value and
range as binaries and use erlang:byte_size to get length
of octets and range. For speed.
Add sorting in constraint checking on single values.

Fix a bug where a subtyped single value integer type where one or more values
were predefined would result in generated encoding code having faulty range
checks. See seq12102.

OTP-10139
In generation of encoding functions for enumeration types,
the values used for generating the range check in case of
a value range should be sorted and have duplicates removed.

For per with optimization (per_rt2ct), sorting has been
added. For both optimized and regular per, the sorting and
duplicate removal code has been simplified.

In case of value range, 'MIN' and 'MAX' is now also checked.

The sorting of constraint values in the check phase remains.
Make n2n option work for enumerated types without extension
markers. Add test enumeration types for testing n2n option
when using the name2num and num2name functions on an
enumeration value not in the extension root of an
enumeration type with extension marker.
Add support for extensible enumeration types in n2n
generated functions.

OTP-10144
Remove empty function in packages docs
beam_validator: Validate the size operand in bs_init_bits and bs_init2
beam_type: Print the offending function if this pass crashes
Correct guard_SUITE_tuple_size.S

The number of live registers in the gc_bif instructions was wrong.
It was not noticed because the beam_type pass silently corrected it.
beam_utils:live_opt/1: Correct handling of try_case_end/1

Liveness for the try_case_end/1 instruction should be calculated
in the same way as for the case_end/1 instruction.
erl_lint: Add a deprecated warning for literal tuple funs

The run-time warning for use of tuple funs will not catch the use
of literal tuple funs, such as:

    if
	{erlang,'+'}(3,X) =:= 0 -> true;
	true -> false
    end.

Therefore, add a compile-time warning to give users some warning
before they stop working in R16.
Merge branch 'bjorn/compiler/minor-fixes/OTP-10185' into maint

* bjorn/compiler/minor-fixes/OTP-10185:
  erl_lint: Add a deprecated warning for literal tuple funs
  beam_utils:live_opt/1: Correct handling of try_case_end/1
  Correct guard_SUITE_tuple_size.S
  beam_type: Print the offending function if this pass crashes
  beam_validator: Validate the size operand in bs_init_bits and bs_init2
Merge branch 'maint'

* maint:
  erl_lint: Add a deprecated warning for literal tuple funs
  beam_utils:live_opt/1: Correct handling of try_case_end/1
  Correct guard_SUITE_tuple_size.S
  beam_type: Print the offending function if this pass crashes
  beam_validator: Validate the size operand in bs_init_bits and bs_init2
Fix broken building of bootstrap compiler

Commit df8e67e203b83f95d1e098fec88ad5d0ad840069 broke
"./otp_build update_primary" because epp:parse_file/4 was
added and used from the compiler, but the epp module is not part
of the primary compiler that is used to compile the bootstrap
compiler. Fix the problem by including the epp module in the
primary compiler.
Update primary bootstrap
Merge branch 'maint'

* maint:
  Update primary bootstrap
  Fix broken building of bootstrap compiler

Conflicts:
	bootstrap/lib/kernel/ebin/code.beam
Merge branch 'gustav/kernel/packages-docs-empty-func' into maint

* gustav/kernel/packages-docs-empty-func:
  Remove empty function in packages docs
Merge branch 'maint'
Merge branch 'gustav/asn1/per_integer_ranges/OTP-10128' into maint

* gustav/asn1/per_integer_ranges/OTP-10128:
  Keep encoded octets of constrained whole number value and range as binaries and use erlang:byte_size to get length of octets and range. For speed.
  Add support for larger integer ranges in per encode/decode