Add uninit intrinsic
Replace init() with uninit() where appropriate
Make staged versions of the functions that use uninit
Add intrinsic declaration where I missed them
remove vecs_implicitly_copyable from libstd/libcore
auto merge of #6349 : thestinger/rust/explicit_copy, r=thestinger

I removed some of the copies, but most are just made explicit. The usage in `libcore` was already fixed, but the attribute was only set to warn (not removed).
auto merge of #6354 : Aatch/rust/uninit-intrinsic, r=graydon

Adds an `uninit` intrinsic.

It's just an empty function, so llvm optimizes it down to nothing.

I changed all of the `init` intrinsic usages to `uninit` where it seemed appropriate to.
Issue the correct deref count for the implicit deref that occurs
as part of an autoslice operation (#6272).

Fixes #6272.
Remove remnants of mutable fields from mem_categorization, borrowck.
auto merge of #6373 : nikomatsakis/rust/issue-6355-perf-regression, r=graydon

Fix #6355 and #6272---we were not giving the correct index to the derefs that occur as part of the rooting process, resulting in extra copies and generally bogus behavior. Haven't quite produced the right test for this, but I thought I'd push the fix in the meantime. Test will follow shortly.

r? @graydon
Implement util::swap without the '<->' operator
Stop using the '<->' operator
Remove the '<->' operator from the language