Python font.em chgd to match UI em size computations

While investigating issue #1741 I noticed that the computed answers for
`.sfd` values `Ascent:` and `Descent:` were not matching those when
changed via the UI versus changed using the Python scripting setter
`font.em`.  The UI code was using floating-point computations and then
rounding-to-nearest, while the Python code was all integer multiply and
divide.

This change copies the UI operations and so resulting values match
using either UI or Python scripting.