The actual FileCheck logic seems to be implemented in LLVMSupport. I don't see a good
reason for having FileCheck implemented there as it has a very specific use while LLVMSupport
is a dependency of pretty much every LLVM tool there is. In fact, the only use of FileCheck I
could find (outside the FileCheck tool and the FileCheck unit test) is a single call in GISelMITest.h.
This moves the FileCheck logic to its own LLVMFileCheck library. This way only FileCheck and
the GlobalISelTests now have a dependency on this code.
Include guards need updating.