Add the concept of a per-subtarget system model, incorporating information
about caches, execution resources, write-combining buffers and software
This is TableGen-driven so that targets may conveniently define new system
models and associate system models with subtargets.
By default, processor classes use a system model that captures the legacy
values exposed by TargetTransformInfo and/or MCSubtarget and friends.
Targets may opt-in to custom system models by defining them and associating
them in instantiations of the Processor template, similarly to how schedulers