Fix vec::mut_slice
auto merge of #6800 : june0cho/rust/issue5984, r=pcwalton

Fix #5984.
Resolve the problem which exists in #6780.
librustc: Redo the unsafe checker and make unsafe methods not callable from safe code
libsyntax: Make `drop` no longer a keyword
libsyntax: Stop parsing mutable fields
librustc: Stop reexporting the standard modules from prelude.