librustc: Allow trait bounds on structures and enumerations, and check
them during kind checking.

This implements RFC #11.

Closes #15759.
auto merge of #16432 : pcwalton/rust/kindck-traits, r=nikomatsakis

them during kind checking.

This implements RFC #11.

Closes #15759.

r? @nikomatsakis