Currently parts in RuntimePointerChecking owns
RuntimeCheckingPtrGroup directly, which is reference from other
datastructures in RuntimePointerChecking. This prevents copying of
RuntimePointerChecking and couples things tightly.
This patch allows sharing, which will be used in a follow-on patch. It
use shared_ptr, but alternatively LAI could own the groups, but that
might couple LAI and RuntimePointerChecking unnecessarily.
I don't recall seeing such separation between llvm and STD headers with newline elsewhere in llvm.