A different approach to defining the gray method

Thanks again for tackling this :)

Here's a different approach to fixing the gray method. Basically just defining the method explicitly. I also liked that you were using `Shoes::Color::OPAQUE` instead of `nil` as the default for alpha, so I incorporated that into the definition for the other color methods as well.

This *does* define `gray` twice. I don't know what the overhead of that is versus checking on each loop through the colors to see if we've got gray.

Thoughts?