rustdoc: show struct field docs when inlined

Some minor changes to the compiler to expose this information. Very
inconvenient since struct fields aren't an item.
`encode_struct_fields` is only used when encoding complete structs. There's this weird index + custom hashmap that indexes actual items, and the interaction between struct fields and the rest of the struct is weird and I don't really understand it. In particular, struct fields themselves aren't considered items so `load_attrs` would never see them. Short of sticking the attributes in the `field_ty`, I don't really see how to handle that.

So yes, I did try that, you rejected it and I wrote this instead :cat2: