Patrick observed excessive slowness when looking up positions in rustc. This might help.
Previously, it would place every single location in the first file of the crate that was parsed.
This makes passing them around cheaper. There is now a table (see front/codemap.rs) that is needed to transform such an uint into an actual filename/line/col location. Also cleans up the span building in the parser a bit.