librustc: implement a #[packed] attribute for structs.

A struct (inc. tuple struct) can be annotated with #[packed], so that there
is no padding between its elements, like GCC's `__attribute__((packed))`.

Closes #1704
testsuite: tests for #[packed] structs.