Better collision detection

It’s been a while since I wanted to revisit our game’s collision-detection system to give it a little boost, but I dragged my feet before rolling up my sleeves; anything to do with collisions always fries my brain. What we had before was fairly simple, and in itself worked pretty well, without any major glitches. But the constraints on player movement were becoming too severe, so something had to…