tapset: introduce a few type macros, and use them in dentry
- @offsetof(type, member): returns the byte offset of a type's member.
- @module_offsetof(module, type, member): using a specific @cast module.
- @container_of(ptr, type, member): casts from a pointer to the given
member to a typed pointer of the container type.
- @module_container_of(ptr, module, type, member): ... with a module.
- @type_defined(type): @defined whether a type exists at all.
- @module_type_defined(module, type): ... with a module.
- @type_member_defined(type, member): @defined whether a member exists.
- @module_type_member_defined(module, type, member): ... with a module.