Add the new macro with-suppressed-warnings

* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): New macro.

* doc/lispref/compile.texi (Compiler Errors): Document
with-suppressed-warnings and deemphasise with-no-warnings
slightly.

* lisp/emacs-lisp/bytecomp.el (byte-compile--suppressed-warnings):
New internal variable.
(byte-compile-warning-enabled-p): Heed
byte-compile--suppressed-warnings, bound via with-suppressed-warnings.
(byte-compile-initial-macro-environment): Provide a macro
expansion of with-suppressed-warnings.
(byte-compile-file-form-with-suppressed-warnings): New byte hunk
handler for the suppressed symbol machinery.
(byte-compile-suppressed-warnings): Ditto for the byteop.
(byte-compile-file-form-defmumble): Ditto.
(byte-compile-form, byte-compile-normal-call)
(byte-compile-normal-call, byte-compile-variable-ref)
(byte-compile-set-default, byte-compile-variable-set)
(byte-compile-function-form, byte-compile-set-default)
(byte-compile-warn-obsolete, byte-compile--declare-var): Pass the
symbol being warned in to byte-compile-warning-enabled-p.

* test/lisp/emacs-lisp/bytecomp-tests.el (test-suppression): New
function.
(bytecomp-test--with-suppressed-warnings): Tests.
1 job for master in 8 seconds (queued for 1 second)
Status Job ID Name Coverage
  Test
failed #2121
test-all

00:00:08

 
Name Stage Failure
failed
test-all Test There has been a runner system failure, please try again
Running with gitlab-runner 11.6.0 (f100a208)
on gitlab-runner-docker cff9d373
Using Docker executor with image debian:stretch ...
Pulling docker image debian:stretch ...
Using docker image sha256:e1de74e67cc70422153600785c4ce4c29843a0e59e18b634c52ca133c564437f for debian:stretch ...
ERROR: Job failed (system failure): Error response from daemon: failed to start shim: exec: "docker-containerd-shim": executable file not found in $PATH: unknown (executor_docker.go:1018:4s)