World items

Feature complete.
Items drop into the world and are picked up by players that walk near them.
Tons of refactoring happened to make this possible.
Why return a pointer if we're just always going to clone anyway?