This is in anticipation of caching glyph images. Quantization means that cache
hits are more likely.
Also make NewFace take an *Options instead of an Options.
benchmark old ns/op new ns/op delta
BenchmarkDrawString-4 96914389 88683659 -8.49%
benchmark old allocs new allocs delta
BenchmarkDrawString-4 32287 0 -100.00%
benchmark old bytes new bytes delta
BenchmarkDrawString-4 1929619 156 -99.99%
Its implementation is mostly a copy/paste of the freetype.Context type.
Follow-up commits will make it more efficient.
Also add an example that uses a truetype.Face and the
golang.org/x/exp/shiny/font package to draw text.