clean up tempfile module and rm FIXME

This removes the FIXME suggesting that mkdtemp should rely on the
default umask, because that would make it unusable for making a secure
work area in a world writable directory (have to assume that other users
have created files, directories, hard links, etc. in your directory).
The POSIX mkdtemp function creates a directory with 700 permissions to
avoid this problem.
Implement Ord trait for Timespec
Handle region errors where the actual scope is a statement

Prevents a case of "unknown scope, this is a bug".

I judged this too small to review. Closes #4500
Fix the difference method on bit vectors
testsuite: Add license
testsuite: Add xfailed test for #4335
Merge pull request #4546 from alexcrichton/bitv-difference-bug

Fix the difference method on bit vectors
Add Alex Crichton to AUTHORS
repr: represent char values as char literals rather than integers.
add a Set trait and implement it for TreeSet
add a LinearSet type (implementing the Set trait)
Merge pull request #4551 from SimonSapin/char-repr

repr: represent char values as char literals rather than integers.
Add Simon Sapin to AUTHORS
Merge pull request #4554 from thestinger/set

add a Set trait
Revert "Fix options passed to gpg in cargo init"

As per https://github.com/mozilla/rust/pull/4253

This reverts commit 6c056976678e103f23fd29557174d7718b75a617.
fix long lines
convert ast::expr into a struct
convert ast::ty into a struct
convert ast::{ty_field_,ty_method} into a struct
convert the remaining ast record types into structs

These are: region,arg,fn_decl,method,_mod,foreign_mod,
variant_arg,enum_def_,variant_,trait_ref.