Better round positions during scaling

Fixes https://github.com/harfbuzz/harfbuzz/issues/3274
diff --git a/src/hb-font.hh b/src/hb-font.hh
index dd5cd13..1b7f445 100644
--- a/src/hb-font.hh
+++ b/src/hb-font.hh
@@ -620,9 +620,7 @@
   }
 
   hb_position_t em_mult (int16_t v, int64_t mult)
-  {
-    return (hb_position_t) ((v * mult) >> 16);
-  }
+  { return (hb_position_t) ((v * mult + 32768) >> 16); }
   hb_position_t em_scalef (float v, int scale)
   { return (hb_position_t) roundf (v * scale / face->get_upem ()); }
   float em_fscale (int16_t v, int scale)