This abstraction was created to help storing arbitrary information in ELF files.
For example, register usage can be stored in Mips specific ELF sections like .Mips.options.
Arbitrary records of .Mips.options should subclass MipsOptionRecord and provide
an implementation to EmitMipsOptionRecord.
The MipsELFStreamer class owns all the records and is responsible for their
creation and destruction.
They can't be null so I'd make them references instead of pointers.