Remove uses of unsafe that were *actually* unsafe.

Unfortunately, this means that the "raw" field iterator can't
actually implement Iterator. Bah, humbug!

This will break any use of raw field iteration. Code that looks like
this:

    while !rdr.done() {
        for field in rdr {
            let field = field.unwrap();
            ...
        }
    }

Will have to be rewritten to this:

    while !rdr.done() {
        loop {
            let field = match rdr.next_field() {
                None => break,
                Some(r) => r.unwrap(),
            };
            ...
        }
    }

This is basically desugaring the `for` loop. :-(

[breaking-change]
0.5.0