rustc: Handle struct patterns where the expected type is an enum

Previously, rustc would ICE if you matched on an enum-typed thing
with a structure pattern. Error out correctly.
tidy
auto merge of #6200 : catamorphism/rust/issue-5358, r=catamorphism

r? @nikomatsakis Previously, rustc would ICE if you matched on an enum-typed thing
with a structure pattern. Error out correctly. This will close #5358