Intrinsic overhaul

This sets the `get_tydesc()` return type correctly and removes the intrinsic module. See #3730, #3475.