Add missing newline in -export()

A newline was forgotten.
Remove unused arguments for asn1ct_gen_ber_bin_v2:gen_dec_prim()

Make the source code a little bit cleaner.
Refactor gen_dec_prim/3 to facilitate future optimizations
BER: Inline testing of constraints when decoding

Calling library routines for validation of constraints may cause
dialyzer warnings if some type of constraints handled by the library
routine are not used in a specific ASN.1 module. To avoid those
warnings (and slightly speed up the decoding), inline the constraint
checking.
BER: Suppress dialyzer warnings for encode_bit_string/4

We don't want to touch the code used for encoding BIT STRINGs when
'legacy_erl_types' is active, since it will be removed within two
or three major releases. But we do want to suppress the dialyzer
warnings in the meantime. The easiest way is to call
encode_bit_string/4 with unknown types from an exported function
that is never actually called like this:

-export(['dialyzer-suppressions'/0]).

'dialyzer-suppressions'(Arg) ->
    {A,B,C,D} = Arg,
    encode_bit_string(A, B, C, D),
    ok.
BER: Optimize decoding of ENUMERATED
Set.py: Correct illegal DEFAULT value

If SetIn is defined like this:

SetIn ::= SET {
  boolIn  BOOLEAN,
  intIn  INTEGER
}

then it may not be used with an empty DEFAULT value like this:

SetDef1 ::= SET {
  set1  SetIn DEFAULT {}
}

The ASN.1 compiler prints an warning message, but still generates
code. (That should be fixed.)

Fix the incorrect ASN.1 specification by making the
components in SetIn optional:

SetIn ::= SET
{
  boolIn  BOOLEAN OPTIONAL,
  intIn  INTEGER OPTIONAL
}
Test DEFAULT more thoroughly

We need to test DEFAULT values both with and without
legacy_erlang_types.
Rewrite the code for testing DEFAULT for DER

The old code for testing DEFAULT values is messy, inefficient, and
causes dialyzer warnings.
Remove old DEFAULT-checking code made obsolete in the previous commit
Correct OCTET STRING default when legacy_erlang_types is active

The default value for an OCTET STRING when legacy_erlang_types was
active would be a binary instead of a list.
Improve tests of DEFAULT values
Test suites: Add support for running Dialyzer on generated code

Running dialyzer on test suites is good for finding both bugs and
useless dialyzer warnings. Add a mechanism in asn1_test_lib for
turning on running of dialyzer on all generated code.

Turned off by default, because it is slow and because there are
still a few dialyzer warnings left.
(U)PER: Suppress dialyzer warnings for complete/1
PER: Remove unnecessary clause for handling DEFAULT
PER: Optimize encoding of character strings with simple ranges

The encoder for the following type would generate a dialyzer warning:

  Ns ::= NumericString (FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))

Optimize this case to make it slightly faster as well as eliminate
the dialyzer warning.
(U)PER: Optimize handling of named BIT STRING with a lower zero bound

If a named BIT STRING has a lower size bound of 0, treat it the same
way as if there was no constraint for the purposes of trailing zero
bits.

That change will eliminate a dialyzer warning.
(U)PER: Fix encoding of a semi-constrained, named INTEGER

The code generator would crash.
(U)PER: Fix decoding of named INTEGER
BER: Remove a redundant clause in encoding of open types

The clause is just an optimization for a (extremly rare) special case.
Removing it will eliminate a dialyzer warning.