make history immutable
switch request logging to lager

Summary:
replace disk_log with lager for request logging, cherry pick from jobs-backport branch

Note: the hello_log test suite (and only the test suite) needs
      lager >= 23-07-2018 (commit dd26760)

This brings D1643 to master

Fixes T654

Test Plan:
tetrapak build
tetrapak test -o test.ct.suite hello_log_SUITE -o test.ct.coverspec test/config/hello.cover

Reviewers: druss

Subscribers: aschultz, druss, mkraemer, hsychla

Maniphest Tasks: T654

Differential Revision: https://review.tpip.net/D1676
switch request logging to lager

Summary:
replace disk_log with lager for request logging, cherry pick from jobs-backport branch

Note: the hello_log test suite (and only the test suite) needs
      lager >= 23-07-2018 (commit dd26760)

This brings D1643 to master

Fixes T654

Test Plan:
tetrapak build
tetrapak test -o test.ct.suite hello_log_SUITE -o test.ct.coverspec test/config/hello.cover

Reviewers: druss

Reviewed By: druss

Subscribers: aschultz, druss, mkraemer, hsychla

Maniphest Tasks: T654

Differential Revision: https://review.tpip.net/D1676
add test for multiple concurrent requests on stateless handlers

ZMQ is currently the only transport protocol that can handle
interleaving requests on the same connection. Test that such
interleaved requests are properly seperated.
fix start_handler registration behavior for stateless handlers on ZMQ

The reuse logic for handlers on ZMQ connections would potentially
reuse existing, registered stateless handler. Since stateless
handlers are per request, registering them is not required.

Note: in theory, this also permits statefull handlers on HTTP and SockJS
      connections when proper request pipelining/interleaving is used.
      THIS IS UNTESTED!
update NEWS.md for 2.2.3 release
add test for multiple concurrent requests on stateless handlers

Summary:
ZMQ is currently the only transport protocol that can handle
interleaving requests on the same connection. Test that such
interleaved requests are properly seperated.

fix start_handler registration behavior for stateless handlers on ZMQ

The reuse logic for handlers on ZMQ connections would potentially
reuse existing, registered stateless handler. Since stateless
handlers are per request, registering them is not required.

Note: in theory, this also permits statefull handlers on HTTP and SockJS
      connections when proper request pipelining/interleaving is used.
      THIS IS UNTESTED!

Fixes T680

Test Plan:
* build
* tetrapak test
* check the stateless_overlap tests

Reviewers: druss

Reviewed By: druss

Subscribers: aschultz, druss, mkraemer, edogs

Maniphest Tasks: T680

Differential Revision: https://review.tpip.net/D1782