shape: Bring back careful rounding code
When we added the round-glyph-positions option in c43da2d3 and b5634799, we lost some code that was careful to round in device coordinates.
The reason we lost it is that the rounding needs fontconfig- specific data that is only available in the backend, and the rounding now happens in the frontend.
Bringing it back is annoying, since we've run out of vfunc slots to get info from the backend. This commit works around that limitation in a hacky way.
Fixes: #562 (closed)