AArch32 branch offsets explicitly encode the target instruction subset (Arm/Thumb) in their least significant bit. We want this bit set (or clear) in addreses we hand out, but the addresses in the LinkGraph should be the real/physical addresses.
This patch allows ELFLinkGraphBuilder's to set target-specific flags in jitlink::Symbol and prepares ObjectLinkingLayer to account for them.
Conceptually, this should be generic and allow targets to store a variety of flags, but for the time being I guess ThumbSymbol will be the only flag we have upstream.
Anyway, non of these data structures are serialized, so can change it any time. I could take one more bit away from Offset to reduce memory pressure. (Or Two?) What do you think?