switch Drop to `&mut self`
auto merge of #9244 : thestinger/rust/drop, r=catamorphism

This doesn't close any bugs as the goal is to convert the parameter to by-value, but this is a step towards being able to make guarantees about `&T` pointers (where T is Freeze) to LLVM.