port to linear instead of vector-space

`diagrams-cairo` remains specialized to Double, as is the `cairo`
package.  Rather than make many calls to `realToFrac`, we should provide
the necessary functions to map this or other functions over every
numeric value in a Diagram.

Only tested on GHC-7.8 so far.