Handle brightness, contrast, hue, and saturation changes

The current draft of the [Filter Effects spec](https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html) describes `brightness`, `contrast`, `hue-rotate`, and `saturate` functions.  It is tempting to have the range of our `setBrightness`, `setContrast`, `setHue`, and `setSaturation` methods match these functions.  As mentioned in 6c346628a58f60e9f28c9517ea736b177699507d, WebKit and the spec [don't agree](https://www.w3.org/Bugs/Public/show_bug.cgi?id=15647) on the range of the `brightness` function.

Here is a summary of these functions (favoring the WebKit implementation):

 * `brightness` [-1, 1] -1 is black, 0 no change, 1 is white, all other values are a linear multiplier of this effect
 * `contrast` [0, +infinity) 0 is grey (spec says black, but I think this is a typo), 1 is no change, all other positive values are a linear multiplier of this effect
 * `hue` (-infinity, +infinity) 0 is no change, all other values rotate around the color circle (in radians)
 * `saturate` [0, +infinity) 0 is completely unsaturated, 1 is no change, all other positive values are a linear multiplier of this effect