Teach the unsequenced operation checker about references and members. To do this introduce a class `MemoryLocation` which will approximate C++ memory locations. We then modify the method `getObject` (renamed to `getMemoryLocation`) to follow references and handle members. We also update the diagnostic message. The rest of `SequenceChecker` is not modified.
We don't handle bit-fields for now but I plan to do this later. I also plan to teach it about the C++17 sequencing rules, and fix a number of corner cases around `||`, `&&` and `?:` (D57747 for `||`, `&&` and `?:`).
The tests modified in this patch are introduced in D57661.