I tried to be as close as possible to the strongest check that existed before; cleaning these up properly is left for future work.
The PointerSize is a little awkward; alternatives welcome. I thought about making TLI require DataLayout as well, but you'd have the same problem of picking a default.
Also, I'm playing with a new tablegen backend for these; what do people think?