New stuff

Not ready to merge.

### New Measure

The new measure is now a specialised `Reader`. Since a `Data` instance couldn't be derived I've had to change how measures are implemented:

- New `MAttribute` that holds `Measured` things. The `Transformable` instance scales the local parts.
- When compiling, these `MAttribute`s  are turned into normal `Atribute`s using the global and normalised scales.
- Backends no longer have to extract `output` measures (so they all need changing).
- No more `Data` instances needed for `n`.

### Other changes

- New `OpacityGroup` annotation, backends can implement similar to `-svg`'s `Href`.
- `Style` now uses `HashMap` which should be faster and doesn't rely `TypeRef`'s non-unique show instance.