Fix alignment-requirement missmatch

Detected by clang and lots of cmdline options.
diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index e2c34f1..9c9b32e 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -233,7 +233,7 @@
 void
 hb_buffer_t::replace_glyphs_be16 (unsigned int num_in,
 				  unsigned int num_out,
-				  const uint16_t *glyph_data_be)
+				  const char *glyph_data_be)
 {
   if (!make_room_for (num_in, num_out)) return;
 
@@ -245,10 +245,11 @@
   }
 
   hb_glyph_info_t *pinfo = &out_info[out_len];
+  const unsigned char *data = (const unsigned char *) glyph_data_be;
   for (unsigned int i = 0; i < num_out; i++)
   {
     *pinfo = orig_info;
-    pinfo->codepoint = hb_be_uint16 (glyph_data_be[i]);
+    pinfo->codepoint = (data[2*i] << 8) | data[2*i+1];
     pinfo++;
   }