Merge branch 'fredrik/ssh/update_versions/R16'

* fredrik/ssh/update_versions/R16:
  Fixed some specs - ssh
  Bumped version numbers
Merge branch 'sa/dialyzer-list-spec/OTP-10740'

* sa/dialyzer-list-spec/OTP-10740:
  Report spec discrepancy on mismatching lists
wx: Fix crash in glu tesselate

Could overwrite emulator data, add range checks.
Properly support functions with arbitrary arity in type specs.
erts: Force windows to use two-digit exponent

sprintf on windows uses a three-digit exponent default
Add UTF-8 node name support for epmd
Fix a bug where necessary alignment would be skipped
Add a mechanism for embedding run-time functions into the generated code
Add run-time library templates and use them

The template modules (asn1rtt_*.erl) are based on the existing
run-time modules, but with some simplifications and improvements,
for example:

The run-time functions for BER encoding took a Constraint argument which
was not used. It has been eliminated, along with the unused StringType
argument for the encode_restricted_string function.

The Range argument for decode_enumerated() has been dropped since it
was not used.
Add and use asn1rtt_check
Add and use asn1rtt_ext
Remove the 'inline' and '{inline,OutputFile}' options
Generate modules with selected run-time functions for compiler usage
Correct error handling for the NIF functions

Also make sure that the error handling is contained within the
asn1rt_nif module and does not leak out to generated code.
BER: Correct bug in 'undec_rest'

enif_make_new_binary() cannot return NULL, so while at it,
remove the check for return value of enif_make_new_binary()
being NULL.
eldap: Remove calls to undocumented asn1rt* functions

We are about to remove the old asn1rt* modules, so we must remove
the calls that eldap make to them. Since the calls are just a
sanity check, we can just remove the calls. Just doing the decode
will do roughly the same tests and generate similar exceptions.
Remove the unused run-time modules
Optimize encoding of ENUMERATED in per and uper

Always pre-encode the values for the enumeration. Clean up the
code and let the per and uper back-ends share the code.
Refactor decoding of BIT STRINGs

Refactor decoding of BIT STRINGs so that the run-time code does
not spend testing conditions that are known already at compile-time
(which wastes time and produces unnecessary Dialyzer warnings).

There are three ways to decode BIT STRINGs:

1) To a list of bit names (and {bit,Position} for unnamed positions)
   if the BIT STRING type has any bit names.

2a) To a list of ones and zeros if there are no named bits, and the
    compact_bit_string option was NOT given.

2b) To a {Unused,Bin} tuple if there are no named bits compact_bit_string
    option WAS given.

Structure the decoding functions in the same way.
BER run-time: Refactor decoding of string data types

In the BER run-time code (asn1rtt_ber), there is a general function
for decoding a string:

  decode_restricted_string(Tlv, Range, StringType, TagsIn)

But the StringType argument is not important. It is only used
internally in asn1rtt_ber to distinguish universal strings and BMP
strings from other strings. By slightly refactoring the string
decoding code, we can eliminate the StringType argument and a
subsequent run-time test on the string type. That will slightly reduce
code size, slightly increase speed, and eliminate Dialyzer warnings.