Don't use zero-sized arrays

It's not part of the standard and MSVC doesn't like it.  It makes the code
a lot less elegant than it used to be, but I think it should work now.
diff --git a/src/hb-open-file-private.hh b/src/hb-open-file-private.hh
index 47d4e04..dda6b94 100644
--- a/src/hb-open-file-private.hh
+++ b/src/hb-open-file-private.hh
@@ -122,9 +122,9 @@
   USHORT	searchRange;	/* (Maximum power of 2 <= numTables) x 16 */
   USHORT	entrySelector;	/* Log2(maximum power of 2 <= numTables). */
   USHORT	rangeShift;	/* NumTables x 16-searchRange. */
-  TableDirectory tableDir[];	/* TableDirectory entries. numTables items */
+  TableDirectory tableDir[VAR];	/* TableDirectory entries. numTables items */
 } OpenTypeFontFace;
-ASSERT_SIZE (OffsetTable, 12);
+ASSERT_SIZE_VAR (OffsetTable, 12, TableDirectory);
 
 /*
  * TrueType Collections