librustc: hint close matches on accessing nonexisting fields

```rust
struct A {
    foo : int,
    car : int,
    barr : int
}
fn main() {
    let a = A { foo : 5, car : 9, bar : 42};
}
```

now shows

```rust
main.rs:7:39: 7:42 error: structure `A` has no field named `bar`
main.rs:7     let a = A { foo : 5, car : 9, bar : 42};
                                            ^~~
main.rs:7:39: 7:42 help: did you mean `car`?
main.rs:7     let a = A { foo : 5, car : 9, bar : 42};
                                            ^~~
main.rs:7:39: 7:42 help: did you mean `barr`?
main.rs:7     let a = A { foo : 5, car : 9, bar : 42};
                                            ^~~
```

same help message for accessing fields.

can't do it for functions, as they aren't iteratable. Only exact lookups are possible there.
somewhat, i can make sure any fields assigned before this field are not displayed as hints, but those that come after the invalid field aren't in the map yet, so i can't check if they've been assigned.
not sure how this could/should be solved