[CR] Game::Pickup() moved

This chunk of code was about 800 lines in game.cpp, so I separated it into pickup.cpp and pickup.h. It's in *dire* need of a refactor, and breaking it up like this should make the source easier to work with. I also made some accessors for variables in the game class and changed the scope of a function or two in game.h to make this possible.

The second commit fixes an unreported bug where no output message is displayed if the player attempted to pickup arrows/bolts with their inventory at max volume and failed to do so.