Update versions of OTP, erts, kernel, and stdlib

Update versions of OTP, erts, kernel, and stdlib to comply with
the new version scheme decided by the OTP technical board.
fixed a spelling mistake in httpc doc
Support non top level letrecs in dialyzer

Dialyzer so far only supported letrecs at the top-level
and comprehension-like letrecs (i.e. that were directly applied)
in their body.

This commit address this issue by storing in the callgraph
bound letrec labels pointing to their functions. This information
is then used by the dataflow to properly lookup recursive
definitions.
EEP 37: Funs with names

This adds optional names to fun expressions. A named fun expression
is parsed as a tuple `{named_fun,Loc,Name,Clauses}` in erl_parse.

If a fun expression has a name, it must be present and be the same in
every of its clauses. The function name shadows the environment of the
expression shadowing the environment and it is shadowed by the
environment of the clauses' arguments. An unused function name triggers
a warning unless it is prefixed by _, just as every variable.
Variable _ is allowed as a function name.

It is not an error to put a named function in a record field default
value.

When transforming to Core Erlang, the named fun Fun is changed into
the following expression:

    letrec 'Fun'/Arity =
               fun (Args) ->
                       let <Fun> = 'Fun'/Arity
                       in Case
    in 'Fun'/Arity

where Args is the list of arguments of 'Fun'/Arity and Case the
Core Erlang expression corresponding to the clauses of Fun.

This transformation allows us to entirely skip any k_var to k_local
transformation in the fun's clauses bodies.
Update primary bootstrap for named funs
Support named funs in the shell

The current code for the evaluation of ordinary funs is dependent
on the order on variables in the fun environment as returned by
erlang:fun_info(Fun, env).

To avoid the problem in the future, make sure that we only have one
free variable in the funs that we will need to inspect using
erlang:fun_info(Fun, env).
Update primary bootstrap for named funs in the shell
Support named funs in the debugger interpreter

The current code for the evaluation of ordinary funs is dependent
on the order on variables in the fun environment as returned by
erlang:fun_info(Fun, env). As it happened, adding the code for
named funs changed the order in the environment for ordinary funs.

To avoid the problem in the future, make sure that we only have one
free variable in the funs that we will need to inspect using
erlang:fun_info(Fun, env).
Test named funs
Document named fun expressions
Support EEP37 named funs in emacs erlang-mode

Change emacs erlang-mode to recognize EEP37 named funs so they're indented
properly. Specifically, modify erlang-partial-parse to allow for an
optional Erlang variable name to appear between the "fun" keyword and the
opening parenthesis of its argument list.
Merge branch 'rickard/otp-17-vsn'

* rickard/otp-17-vsn:
  Update versions of OTP, erts, kernel, and stdlib
Merge branch 'nox/eep37/OTP-11537'

* nox/eep37/OTP-11537:
  Support EEP37 named funs in emacs erlang-mode
  Document named fun expressions
  Test named funs
  Support named funs in the debugger interpreter
  Update primary bootstrap for named funs in the shell
  Support named funs in the shell
  Update primary bootstrap for named funs
  EEP 37: Funs with names
  Support non top level letrecs in dialyzer
Merge branch 'wmalik/httpc_spelling'

* wmalik/httpc_spelling:
  fixed a spelling mistake in httpc doc

OTP-11538