This patch contains all of the clang changes from D72959.
- Generalized the relative vtables ABI such that it can be used by other targets.
- Adds an enum VTableComponentLayout which controls whether components in the vtable should be pointers to other structs or relative offsets to those structs. Other ABIs can change this enum to restructure how components in the vtable are laid out/accessed.
- Adds methods to ConstantInitBuilder for inserting relative offsets to a specified position in the aggregate being constructed.
See D72959 for background info.