Make it possible to create custom MachineInstr builders that can add special
operands, e.g. the predicate operands on ARM.
We achieve this by means of a MIBuilderBase class that can be used via CRTP to
create builders whose custom add* methods will chain nicely with the default
ones.
The MachineInstrBuilder inherits from MIBuilderBase and has the exact same
interface as before.
This is the first of a series of 4 patches intended to add a custom builder for the
ARM backend. See D27984 (RFC 2).