Option to dilate pixel distances on some glyphs

Sometimes when computing distances (for the sizes of rectangles, images, etc.) you can get floating point values. This can result in artifacts such as glyphs that do not quite abut one another that should. This `dilate` property can be set on the glyphspec, and will cause all such distances to always be rounded up before using. 

Note that this solution is not perfect, and can result in the opposite problem: sometimes the rects, etc. will have a minimal overlap. However this can still be useful, especially if there is no alpha compositing to let the overlap show up. 

This work was mostly done by @shughes-uk.