clang added support for the "trivial_abi" which allows structs that would usually be passed in memory in C++ to be passed in registers instead.
This patch reads in the DWARF attribute that specifies a data type is using this ABI, and marks the Clang type appropriately.
It also adds the decorator goo to skip the test if the compiler doesn't support this attribute.
It also adds a test that tests that we can handle the same struct with and without this attribute in the expression parser and can fetch the return value for it properly. Ironically, the lldb return value code for x86_64 only uses struct size & alignment to tell it how structs would be returned. By that computation this struct should have been returned in registers. So the part of the test handling the non-trivial return is xfailed.