Cleanup the example drivers

Add a description of each driver and remove repeating documentation so
we don't have to maintain it in multiple files.  We will add later one
heavily docuemnted driver function.
Remove extra life when picking up a pegnuin

When we had only a random driver, it was more usful to advance the
player 2 steps when picking up a penguin, since random driver does not
make very little progress. Now that we have smart drivers, we don't need
that any more.
Clear obstacles only after collision

Previously all obstacles were cleared after even if player jumped over
them or slowed down. Now they are clear only after collision when player
did not use the correct action for the obstacle.
Simple collision detection

Server ensure now that cars cannot take the same position on the track.
For fairness the server process each iteration in random order, giving
each player chance to take the first move. If a collision occurs, the
car is pushed back after the other cars or to the side.

We don't handle the case where car is pushed back over an obstacle.
Merge pull request #49 from nirs/examples

Cleanup the example drivers
Merge pull request #50 from nirs/game-logic

Game logic