Implement into_iter() for BinaryHeap.

Whilst browsing the source for BinaryHeap, I saw a FIXME for implementing into_iter.  I think, since the BinaryHeap is represented internally using just a Vec, just calling into_iter() on the BinaryHeap's data should be sufficient to do what we want here.  If this actually isn't the right approach (e.g., I should write a struct MoveItems and appropriate implementation for BinaryHeap instead), let me know and I'll happily rework this.

Both of the tests that I have added pass.  This is my first contribution to Rust, so please let me know any ways I can improve this PR!
So we really need to settle on the conventions of whether this sort of thing just needs to be aliased with `pub type MoveItems<T> = vec::MoveItems<T>`, or if we should always be new-typing these things. I'd be happy with just the `pub type` for now. CC @aturon.