Don't spew a warn!() in reset() if num_colors is 0, because
non-color-supporting terminals are legit. Use debug!() there instead.
Continue spewing warn!() if we believe the terminal to support colors.
Use a better warning when the `op` capability can't be found.
Unlike fg() and bg(), we haven't already checked for the presence of
"op" in the terminfo when we call reset(), so we need to handle the case
where it's missing.
Also update the warn!() lines to avoid double-quoting the output.
Fixes#7431.
Move all the colors into a nested mod named color instead of prefixing
with "color_".
Define a new type color::Color, and make this a u16 instead of a u8 (to
allow for easy comparisons against num_colors, which is a u16).
Remove color_supported and replace it with num_colors.
Teach fg() and bg() to "dim" bright colors down to the normal intensity
if num_colors isn't high enough.
Remove unnecessary copies, and fix a bug where a terminfo parse failure
would try to use the wrong error and end up failing.