Gradient

*** Please do not merge ***

1) We probably need some discussion of the compromise I made for compatibility with backends that don't support gradients. I.e. duplicating some of the color functions from `Attributes` in `TwoD.Attributes`

2) The data structure for the gradient attribute value works for the SVG backend. We need to see is it is adequate for the other backends before merging.

3) Documentation needs to be written