stdlib: Fix indentation of maps doc
ssl: Add ssl options to listen options tracker
inets: Correct httpc_SUITE
Teach code:del_path/1 to ignore superfluous slashes

The following sequence will NOT leave the code path unchanged:

  code:add_path("/some/app/"),
  .
  .
  .
  code:del_path("/some/app/")

The reason is that code:add_path/1 will normalize the path name
(removing the trailing slash), while code:del_path/1 does not
normalize the path before searching for it in the code path.
application_SUITE: Clean up the code after the test is done
ssh: Add max_session parameter to ssh:daemon
ssh: Use correct timeout value for the connection timeout
ssh: Prepare for release
crypto: Fix memory leak in hmac stream functions

The context was never deallocated.
Merge branch 'saa/add_default_value_for_maps_get/OTP-11951' into maint

* saa/add_default_value_for_maps_get/OTP-11951:
  stdlib: Fix indentation of maps doc
  Add docs and test for maps:get/3
  Add default value for maps:get
crypto: Fix memory leak in some error cases

sign(dss,) and compute_key(dh,)
Add testcases that send unknown AVPs with a bad AVP Length

In particular, a length that points past the end of the message. This
goes undetected there is some other problem with the AVP (eg. M-bit),
which is a problem we're about to fix.
Fix handling of AVP length errors (5014) in unknown AVPs

Commit 4ce2d3a6 added the insertion of a single bit into binary AVP data
to induce an encode error in the case of a header length that pointed
past the available bytes: a 5014 = DIAMETER_INVALID_AVP_LENGTH error.
Commit 838856b fixed this for stringish Diameter types, but both commits
neglected the case in which the offending AVP isn't known to the
dictionary in question. Unless the AVP was regarded as erroneous for
other reasons (eg. an M-bit resulting in 5001) it would be happily be
packed into an 'AVP' field. If it was regarded as an error, the record
could be passed back to diameter_codec:pack_avp/1, and if the record
contained header data then there was no clause to deal with the
unpleasantry.

Deal with it by having the dictionary module strip the extra bit and
flag the AVP as 5014, and by having diameter_codec handle any extra bit
coming from an dictionary compiled against an old diameter_gen. An old
dictionary won't detect 5014 however, so dictionaries should be
recompiled.

Change most of the guards in diameter_codec from is_bitstring/1 to
is_binary/1. What's being passed to the decode functions are binaries
received other the network. The only case in which a non-binary
bitstring is when we've placed an extra bit there ourselves. (Modulo
someone doing something they shouldn't.)
Add a testcase that expects a decoded value in Failed-AVP

This isn't currently the case, but soon will be.
Do best-effort decode of Failed-AVP

Commit 4ce2d3a6 (diameter-1.4.2, OTP-11007) disabled the decode of
values in Failed-AVP components since any error caused the decode of
Failed-AVP itself to fail. This is less than useful since (1) we should
be able to decode it given that we've sent it (modulo mangling on the
way to the peer and back), and (2) it's not unheard of to examine
Failed-AVP to see what the peer objected to.

This commits adds a best-effort decode: decode if possible, otherwise
not, using the same abuse of the process dictionary as commit bbdb027c.
Merge branch 'anders/diameter/hardening/OTP-11721' into maint

* anders/diameter/hardening/OTP-11721:
  Simplify example server
  Make example server answer unsupported requests with 3001
  Make example code quiet
  Don't count messages on arbitrary keys
  Replace traffic-related log reports with no-op function calls
Merge branch 'anders/diameter/5014/OTP-11946' into maint

* anders/diameter/5014/OTP-11946:
  Fix handling of AVP length errors (5014) in unknown AVPs
  Add testcases that send unknown AVPs with a bad AVP Length
Merge branch 'anders/diameter/Failed-AVP/OTP-11936' into maint

* anders/diameter/Failed-AVP/OTP-11936:
  Do best-effort decode of Failed-AVP
  Add a testcase that expects a decoded value in Failed-AVP
Change answer_errors default from report to discard

In the same vein as commit 00584303, to avoid logging traffic-related
happenings.

Not that the value in diameter.hrl is just documentation: the value is
set explicitly when diameter:start_service/2 creates diameter_app
records.
ssl: Add format_status function to ssl connection process