This commit introduces LLVM's MemoryEffects attribute and replaces the
deprecated usage of llvm.readnone in the LLVM dialect.
The absence of the attribute on a LLVMFuncOp implies that it might
access all kinds of memory. This semantic corresponds to llvm::Function's
behaviour.
Depends on D142002
nit: I think most other attributes use camelCase for LLVM attribute names infavor of using them as is.