Avoid a subtle bug.

There is a bug in the physics engine code where, if two Fixtures both
have methods attached to their OnCollision events, and the first
Fixture's OnCollision method returns false while the second one returns
true, the second result takes precedence. This is bad because it is not
defined which Fixture is the first one and which Fixture is the second
one, and this can lead to unpredictable results later.

To work around this, the ball's Body object no longer listens for
collisions, which ensures that only one of the colliding Fixtures has
an OnCollision event at any given moment. Thus, everything but the
ball listens for collisions, which is kinda weird, but oh well.

To compensate, the walls themselves listen for collisions now, and
the Simulation class has an event that fires when something collides
with a wall. And I have to fit everything else in the right place...