Break out the assert macros in eunit.hrl to stdlib/include/assert.hrl

Several people have requested that the assert macros in EUnit should be
moved out to a separate header file. This patch puts them in
stdlib/include/assert.hrl, which gets included by the eunit.hrl file. Thus,
nothing changes for eunit users, but the asserts can now also be included
separately.
asn1_SUITE: Only run testExtensionAdditionGroup/1 once
testSetOptional: Correct test case for decoding of corrupt data

Eliminate the spawning of the process since the original bug is
fixed.
Simplify testSetOptional by introducing a roundtrip/2 function
Simplify testChoExtension by introducing a roundtrip/2 function
Simplify testSeqExtension.erl by introducing a roundtrip/2 function

Make the test suite more readable by introducing and using a
roundtrip/2 function.
Simplify testChoRecursive by introducing a roundtrip/2 function
Simplify testChoExternal by introducing a roundtrip/2 function
Simplify testEnumExt by introducing a roundtrip/2 function
Simplify testCompactBitString by introducing roundtrip functions

Also run the test case for all back-ends.
Simplify testConstraints by introducing helper functions
asn1 doc: Remove a reference to a section that has been removed
asn1rt_uper_bin: Correct incorrect skipping of extensions

Commit 1b622484ea984f3bc424d2a6760e2d961bfcf816 changed the type of
the extension bitmap for uper (from a tuple to a bitstring), but did
not do the the corresponding change to the run-time module.
Fix a bug in skipping of extensions

Extensions following a double bracket group were not skipped correctly.
Fix this bug and add tests to ensure that extensions are skipped
correctly.
Make .abs file consultable
Add a test case for constraint equivalence

The constraint simplification pass need to be seriously rethought
and rewritten.

As a starting point, add a test case to test that equivalent ways
to write a constraint are reduced to the same simplified constraint.
Fix a few obvious bugs to make the test cases to pass.
asn1ct_parser2: Let synonyms share parsing code

UNION and "|" are synonyms, as are INTERSECTION and "^". Use the same
parsing code for the synonyms.
Remove support for the {Typename,Value} notation in encoding

Support for the notation was removed in 6ef8cbdaaaa1c30a7dc462063.
per: Fix encoding of OCTET STRINGs with fixed length of 256 or more
per: Slightly optimize encoding of fixed OCTET STRINGs

Do the following optimizations:

* Optimize construction of OCTET STRINGs of size 2 by using
  the 45 opcode instead of the 10 opcode for each character.

* Use exact comparison (implicit by matching) instead of '=='.

* Use list literals when more than one integer is added to a
  list (e.g. [[45,16,2],...] instead of [45,16,2,...]). Results
  in fewer BEAM instructions and less garbage.

* Cons instead of building a nested list when possible. Example:
  [20,TempLen|TmpVal] instead of [20,TempLen,TmpVal].

* Omit the "2" opcode (align to byte boundary) before the "20" and
  "21" opcodes (because they imply alignment).

* Assign the value to be encoded to a temporary variable, to avoid
  calling element/2 more than once.