Add lifetime bounds on Items and MutItems.

This also required a fix for Vec's MoveItems. This resolves issue #16941
Thanks for the response. I've gone ahead and made the change. My first pass at fixing this issue involved making an UnsafeItems struct which could be used to implement Items, MutItems, and Vec's MoveItems. But on second thought it seemed a bit unnecessary to create a new public struct which had very few uses.

If this is desirable, I'd be happy to implement it that way.