BW & XY: Implement Recycle.

- Correct a few item interaction mechanics as well.
i think you've come across one of the hard problems in computer science: naming. it took a while for me to understand why this was called `restore` and yet was setting `lastItem` to `null`. inside the function, it isn't actually restoring anything. what do you think about naming it something else? `clearLastItem` is a bit verbose but is, well, clear. you probably have better ideas.