Use FnvHashMap instead of HashMap in rustc
auto merge of #18821 : arielb1/rust/fnv-hash-map, r=eddyb

This should improve performance
Document ast::Ty_
Try to remove ty_nil, some kind of error in exhaustiveness checking
Complete the removal of ty_nil, ast::LitNil, ast::TyBot and ast::TyUniq

[breaking-change]

This will break any uses of macros that assumed () being a valid literal.
Update tests accordingly
Update the reference