Add CanvasColor style

Currently, all colors are specified by `Text`, which is not quite as typesafe as it could be. To help remedy this, I introduced a `CanvasColor` class which allows users to use the `Colour` and `AlphaColour` types from the [`colour`](http://hackage.haskell.org/package/colour) package in addition to `Text`. I changed certain functions (`strokeStyle`, `fillStyle`, and `addColorStop`) to accept `CanvasColor a` arguments, and I put overloaded versions that accept `Text` in `Graphics.Blank`. These are now all equivalent:

```haskell
strokeStyle $ pack "green"
 -- from Graphics.Blank.Style
strokeStyle green
strokeStyle $ rgb 0x00 0x80 0x00 -- or strokeStyle $ rgb 0 128 0
strokeStyle $ rgbPercent 0 50 0
strokeStyle $ rgba 0x00 0x80 0x00 1.0 -- or strokeStyle $ rgb 0 128 0 1.0
strokeStyle $ rgbaPercent 0 50 0 1.0
strokeStyle $ hsl 0 0 50
strokeStyle $ hsla 0 0 50 1.0
```

These correspond to the different ways that [CSS color values](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value) can be specified.

The only thing that's iffy is that everything from `colour` uses the British English spelling, whereas I used the American English spelling when creating `CanvasColor` (as there was already an `addColorStop`). Hopefully users will be able to, er, manoeuvre their way around the spelling differences.