support colliding CSS filter effects functions

CSS filter effects [0] define several functions (invert, grayscale,
opacity, saturation) that collide with the names of built-in Sass
functions. Overload these functions with a no-op when the filter effects
function signature is discovered. This is compatible with Ruby Sass.

For example, calling `invert` with a color will return an inverted color
as before:

    color: invert(#333) => color: #cccccc

But calling `invert` with a percentage will pass through the function
call unharmed.

    filter: invert(30%) => filter: invert(30%)
    filter: invert(.03) => filter: invert(.03)

Fixes #151.

[0]: http://www.w3.org/TR/filter-effects/
prefer "gray" to "grey" when converting colors to names

For consistency with Sass.
inspect: always round color channels before inspection

Since RGB channels are stored as doubles, HSL/RGB conversions can result
in decimal values being stored for a channel. This breaks color name
lookup. For example, previously

    rgb(127.5, 127.5, 127.5)

would fail to be converted to "gray," despite being rounded and output
as

    #808080

which *does* map to gray. So instead of performing the rounding only
when outputting as a hex triplet, perform the rounding at the start,
always. This achieves consistency with Sass.
Merge pull request #515 from benesch/filter-effects-functions

support colliding CSS filter effects functions