Make -Werror controllable on a per-warning-class basis

Make -Werror possible to control on a per-warning-class basis.  While
I was fixing up that code anyway, merge the handling of the -w, -W and
[warning] argument and directives.

Furthermore, make *all* warnings suppressible; any warning that isn't
categorized now belong to category "other".  However, for cleanliness
sake an "other" option does not get listed in the warning messages.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
diff --git a/doc/changes.src b/doc/changes.src
index a24ddf2..dfc3c8e 100644
--- a/doc/changes.src
+++ b/doc/changes.src
@@ -26,6 +26,10 @@
 \b \c{macho} object format now supports the \c{subsections_via_symbols}
    directive, see \k{macho-ssvs}.
 
+\b All warnings can now be suppressed if desired.  Furthermore,
+   warning-as-error can now be controlled on a per-warning-class
+   basis.
+
 \S{cl-2.12.03} Version 2.12.03
 
 \b Add new warnings for certain dangerous constructs which never ought