Switched the order of arguments to `transform` to make things more consistent with points as row vectors, multiplied by matrices to the right.
`Rectangle` probably needs a more compact name. Also, I need to refactor the modules: it would be nice to change the type of `annotationRect` from `a -> [PDFFloat]` to `a -> Rectangle`, however `Rectangle` is defined in `Graphics.PDF.Shapes`, and `class AnnotationObject` is defined in `Graphics.PDF.Draw`, and `Shapes` imports `Draw`, causing a cyclic dependency.
After consultation with Alpheccar, it is clear that marking the license as LGPL in the cabal file was a mistake; after all the "LICENSE" file is a BSD-style license, and all files are marked as BSD-style copyright. HPDF was never under the LGPL.
The discrepancy in the last commit was a consequence of the fact that multiplication was commuted, as I tend to think of column-oriented matrix * vector, whereas the PDF manual uses the row-oriented vector * matrix. And of course, matrix * vector = transpose vector * transpose matrix.
Many changes to Graphics.PDF.Coordinates, also bringing the rest of the tree into sync. Unfortunately, at some point I introduced a bug on page 16 of the demo pdf: the black box should neatly bound the skewed box.