First stage of struct variant field visibility changes

We need a snapshot before the parser can be adjusted.
auto merge of #18792 : sfackler/rust/struct-variants, r=alexcrichton

We need a snapshot before the parser can be adjusted.