[LangRef] Clarify semantics of volatile operations.
Specifically, clarify the following:
- Volatile load and store may access addresses that are not memory.
- Volatile load and store do not modify arbitrary memory.
- Volatile load and store do not trap.
Prompted by recent volatile discussion on llvmdev.
Currently, there's sort of a split in the source code about whether
volatile operations are allowed to trap; this resolves that dispute in
favor of not allowing them to trap.
Differential Revision: https://reviews.llvm.org/D53184