Handle always-unsized structs

closes #16977
Fix bug in padding unicode, #17105.
auto merge of #17112 : nick29581/rust/unsized-fields, r=nikomatsakis

closes #16977 

r? @nikomatsakis
auto merge of #17145 : ahmedcharles/rust/unicode, r=alexcrichton
Move uses of enum to bitflags!.

There are still others, but this is the first batch.