Fix an assertion triggered when using anonymous structs in kernel

With asserts enabled, using an anonymous structure in the signature of
a kernel would cause an assertion to be triggered, which caused slang
to exit prematurely instead of printing an error diagnostic.

The problem is in the code in RSExportForEach::Create that exports
the types in the kernel signature. I changed this code not to throw
asserts when it sees a type that cannot be exported. However, since we
expect an error in this circumstance, I added an assert to ensure
that the diagnostic has been issued.

Change-Id: I727695b07d1310c8317b973499faa8088e2b0b4e
4 files changed