Make sure we initialize all callbacks upon creation

Also fixes issue with unicode callbacks never being set really.
diff --git a/src/hb-unicode.c b/src/hb-unicode.c
index 69ba58c..77efb67 100644
--- a/src/hb-unicode.c
+++ b/src/hb-unicode.c
@@ -40,9 +40,7 @@
 
 hb_unicode_funcs_t _hb_unicode_funcs_nil = {
   HB_REFERENCE_COUNT_INVALID, /* ref_count */
-
   TRUE, /* immutable */
-
   {
     hb_unicode_get_general_category_nil,
     hb_unicode_get_combining_class_nil,
@@ -60,8 +58,7 @@
   if (!HB_OBJECT_DO_CREATE (hb_unicode_funcs_t, ufuncs))
     return &_hb_unicode_funcs_nil;
 
-  *ufuncs = _hb_unicode_funcs_nil;
-  HB_OBJECT_DO_INIT (ufuncs);
+  ufuncs->v = _hb_unicode_funcs_nil.v;
 
   return ufuncs;
 }
@@ -94,9 +91,7 @@
   if (!HB_OBJECT_DO_CREATE (hb_unicode_funcs_t, ufuncs))
     return &_hb_unicode_funcs_nil;
 
-  *ufuncs = *other_ufuncs;
-  HB_OBJECT_DO_INIT (ufuncs);
-  ufuncs->immutable = FALSE;
+  ufuncs->v = other_ufuncs->v;
 
   return ufuncs;
 }