Add back wider cast to IntType

My local clang12 is fine, but many bots are not:

../src/hb-ot-cff1-table.hh: In instantiation of ‘bool CFF::Charset1_2<TYPE>::sanitize(hb_sanitize_context_t*, unsigned int) const [with TYPE = OT::IntType<unsigned char>]’:
../src/hb-ot-cff1-table.hh:554:13:   required from here
../src/hb-ot-cff1-table.hh:377:60: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
       if (unlikely (!ranges[i].sanitize (c) || (num_glyphs < ranges[i].nLeft + 1)))
                                                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

Enabling the extra cast operator mentioned in previous commit to see if
that fixes this case.

Again, I'd be happy to say "use 1u instead of 1" if this was universally
erred on.  But since some compilers happily compile this while others
err, it would be a huge headache. Let's see...

https://github.com/harfbuzz/harfbuzz/pull/2875
diff --git a/src/hb-open-type.hh b/src/hb-open-type.hh
index 1af4e6e..ff12d4a 100644
--- a/src/hb-open-type.hh
+++ b/src/hb-open-type.hh
@@ -64,6 +64,11 @@
   IntType& operator = (Type i) { v = i; return *this; }
   operator Type () const { return v; }
 
+  template <typename Type2 = hb_conditional<hb_is_signed (Type), signed, unsigned>,
+	   hb_enable_if (sizeof (Type) < sizeof (Type2))>
+  operator hb_type_identity_t<Type2> () const { return v; }
+
+
   bool operator == (const IntType &o) const { return (Type) v == (Type) o.v; }
   bool operator != (const IntType &o) const { return !(*this == o); }