This matches gcc. This means that by default, under x86-64's medium code model we treat globals < 2^16 bytes as "small data" and globals >= 2^16 bytes as "large data". The previous clang behavior of treating all data as "large data" can be set with `-mlarge-data-threshold=0`. See https://discourse.llvm.org/t/rfc-matching-gccs-mlarge-data-threshold-for-x86-64s-medium-code-model/73727.
Error if not used with x86_64. Warn if not used with the medium code model (can update if other code models end up using this). Set TargetMachine option and add module flag.