[#538] Combine onCollision and collisionHandler.

- No need to separate these two methods
- Also fixed the platform bounce with a more intelligent platform collision test
- And fixed the pushable spikes by removing the isSolid/isHeavy flags (pushable blocks can be implemented in the callback until we implement mass)
- TODO: There's a slight "bounce" when running into a wall head-on. It appears to be caused by the overlap calculation getting confused...
- TODO: Investigate a "fall through the world" bug that may be related to the overlap confusion; disable the velocity correction in respondToCollision (zero the velocity instead of calculate the delta) then after jumping into the pit, running straight into the first wall will almost always drop you through the floor.
[#538] Add fall-through platforms by holding `down` arrow

- This is why allowing collision response decisions in user code is awesome.