[RFC] `ptr` dialect & modularizing ptr ops in the LLVM dialect

Actually I slept on it, and I can see how it can be spinned as some sort of “type alias” (thanks for @ftynse comment!) between dialects. Independently of this proposal, it may be worth it to extract this in a PR of its own right now if you’re up for it!
(While I’m here: your implementation should be updated for the “default dialect” feature by the way)

You can offload a lot of things to the interface, but you still need to define them! That is the interface is making something “parametric” but we still need to describe the concepts and how it can be “parameterized” by the interface. You may see it as “this is the documentation of the interface”, and that’s OK: but I see this interface and its documentation as part of the ptr type itself actually.