Merge pull request #76 from csmith/master

Use floats for highlight shapes.
Tidy up highlight calculation.

Use the bounds from the logical highlight shape, rather than
calculating everything from scratch using the text metrics.