Reorganize output_tests for structs
As I added more and more cases, I found the dir structure hard to
navigate. The new structure follows how you read a type:
e.g. struct { F *string } -> struct/ptr_string
This exposed some redundant cases and some missing cases, too.