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.
Merge pull request #54 from diagrams/linear

Migrate from `vector-space` package to `linear`

Make types more polymorphic.