Correct YIQ conversion, and YIQ#to_rgb

This patch fixes RGB=>YIQ conversion, and provides YIQ=>RGB conversion.
In YIQ, only Y is in the 0..1 range, I and Q have a different min/max.
In this change:
  - RGB::to_yiq will correctly scale these ranges so conversion is
    accurate. The old way converted, but then incorrectly normalized
    negative I and Q to 0..1. This conversion now calls the new
    YIQ.from_ntsc_fraction, which accepts the correct ranges, and
    rescales properly to 0..1. Also uses higher-precision conversion
    factors.
  - Adds YIQ.from_ntsc_fraction and YIQ#to_ntsc to rescale to and from
    the 0..1 range into the actual range.
  - Adds YIQ#to_rgb to enable going back to RGB from YIQ.
  - Uses stdlib matrix for conversion.