* Fix half-pixel offsets in scaling renderer
- This bug was very subtle. It can be hard to notice!
- Context: When the scaling renderer transformation matrix is created,
it needs to center the image within the border.
- The previous code always evaluated the translation to (0, 0)
- This PR makes half-pixel adjustments to the translation when needed,
making it impossible to rasterize the texture on a half-pixel
boundary.
- I spotted this while working on pixel-aspect-ratio support, but it can
most easily be witnessed in the `conway` example by grabbing the top
or bottom resize handle on the window and slow dragging it up and down
by 1-pixel-at-a-time. When you hit a half-pixel bug the entire texture
will change slightly; some pixels will become hidden or duplicated.
* Bump MSRV