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.
auto merge of #5816 : dbaupp/rust/rustc-packed-v2, r=nikomatsakis

#5758 take 2.

This adds a `#[packed]` attribute for structs, like GCC's `__attribute__((packed))`, e.g.

```rust
#[packed]
struct Size5 {
   a: u8,
   b: u32
}
```

It works on normal and tuple structs, but is (silently) ignored on enums.

Closes #1704.
Revert map.each to something which takes two parameters
rather than a tuple.  The current setup iterates over
`BaseIter<(&'self K, &'self V)>` where 'self is a lifetime declared
*in the each method*.  You can't place such a type in
the impl declaration.  The compiler currently allows it,
but this will not be legal under #5656 and I'm pretty sure
it's not sound now.
Added iter_to_vec conversion fn
auto merge of #5796 : nikomatsakis/rust/issue-5656-fix-map-iteration, r=nikomatsakis

Revert map.each to something which takes two parameters rather than a tuple.  The current setup iterates over `BaseIter<(&'self K, &'self V)>` where 'self is a lifetime declared *in the `each()` method*.  You can't place such a type in the impl declaration.  The compiler currently allows it, but this will not be legal under #5656 and I'm pretty sure it's not sound now.  It's too bad that maps can't implement `BaseIter` (at least not over a tuple as they do here) but I think it has to be this way for the time being.

r? @thestinger
path -> Path
removed eval.rs: dead code

@brson confirms that eval.rs is now dead code
unneccessary since tjc's commit 78ec6fe30cf2b, fixing #2804
removed test referring to WONTFIX bug #2443
libsyntax comments only
auto merge of #5709 : jbclements/rust/miscellaneous-cleanup, r=jbclements

There's no unifying theme here; I'm just trying to clear a bunch of small commits: removing dead code, adding comments, renaming to an upper-case type, fixing one test case.
auto merge of #5818 : Kimundi/rust/iter_to_vec, r=catamorphism
syntax: match variants use 4 space indent by default
syntax: update a deriving error message to use the new syntax
std: clean up the order of {De,En}codable methods
std: rename {read,emit}_field to {read,emit}_struct_field
syntax: Simplify deriving to handle classes that take generics, like Encodable
syntax: add support for #[deriving(Encodable)]
syntax: add support for #[deriving(Decodable)]