This patch attempts to tidy up the llvm-strings testing by:
- Adding comments to every test.
- Getting rid of canned input files, and have the tests generate them on the fly (this makes the tests self-contained).
- Adding missing test coverage.
- Renaming some tests that weren't clear as to their purpose.
- Adding extra checking of various cases, formatting etc.
- Removing a test that didn't seem to have any useful purpose for testing llvm-strings.
Should we use ## in this tests too? I would do this, since it is probably
not bad to have a single style across the all LLVM tests.