[xla:ffi] Unify external and internal user data registration and use i64 type ids
[xla:ffi] Unify external and internal user data registration and use i64 type ids

- treat external and internal user data uniformly as an opaque pointer + optional deleter
- use the same i64 TypeId for internal and external types to avoid expensive string comparison on a hot path
