rustc: better error prints

Hi, this is inspired by the output of previous rustc output:
```
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'assertion failed: fields.len() > 0', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/librustc/middle/ty.rs:3657
```

This **unexpected failure** will scare off someone IMO, right, then such that a better error print would be better :p
Additionaly, I think you will need to use `cx.sess.span_err(ast_variant.span, "error message")` instead of `cx.sess.fatal`.