inets - httpc_SUITE: add redirect tests for response 303

httpc contains code for redirecting http response
301, 302, 303, and 307, but no tests existed for
response '303 See Other'. Added tests (get, head, and post)
for 303 and renumbered tests for 307. The subtle thing is that
for 303 also post requests *should* be redirected.

Also added the necessary 303 page to the dummy_server.
inets: fix autoredirect for POST requests responding 303

Changed httpc_response, for redirect '303 See Other' also POST
requests should be redirected (using GET). See RFC2616 sect. 10.3.4
for clarification.
Update all bif highlighting for emacs

All bifs should now be highlighted correctly. Also added
a testcase which will check for any future bif additions
and deletions.
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.
Slightly optimize per encoding of large INTEGERs with constraints
Enumeration decoding: Don't emit a default clause if it cannot match

Dialyzer will warn for default clauses that cannot possible match.
uper: Look up some SizeConstraints at compile-time