Fix track limits when detecting collisions

One-off error caused and IndexError when trying to access a location out
of the the track.
Fix car location named tuple

The named tuple was not created properly, and the class with mutable
variables was sent to the drive function, instead of a imutable named
tuple.
Fix get_obstacle when x or y are negative

Accessing python list with negative values return items from the end of
the list instead of raising IndexError. This patch raise helpful error
in this case.
Process player actions by player response time

Previously the server would process player actions using random order,
trying to give players equal chance to win when two players try to move
the same position.  This patch uses player response time for processing
order, preferring faster drivers, similar to the real racing track.
Merge car postion into world object

Previously the driver function got car position and world object. Now it
has only a world object, used to access all game data.

World api was refined, replacing unclear watch_item_in_cell() with
get_obstacle().
Add example driver

This driver is scoring all available actions and choose the action with
the best score.

This driver prefer to keep in the same lane if possible since switching
lanes can lead to collisons with other cars. When it must switch lane,
he will take the lane that has a penguin a head.
Merge pull request #53 from nirs/fixes

Fix various bugs
Merge pull request #54 from nirs/game-logic

Process player actions by player response time
Merge pull request #55 from nirs/world

Merge car postion into world object
Merge pull request #56 from nirs/examples

Add example driver
Prefer the leading drivers on collisions

When processing driver actions, process first the leading drivers,
preferring those with faster response time. These seems to give better
results when collision happens.
Improve scoring rules for example driver

Previously I assumed that turning is dangerous since you may collide
into other car and loose speed, so switching lane to a lane with a
penguin was scored lower then keeping in the same lane and making no
progress. Now the switching to such lane has higher score and this
driver perform better now.
Rename example driver and improve description

This driver is preferring turns, not jumps.
Remvoe the unused concept of player "life"

We never used the life value of a player, so lets remove it to keep the
game simple as possible.
Starting the race at the bottom of the screen

Starting now at row 6 instead of 4, making the game little more
interesting and more like a real race.
Merge pull request #57 from nirs/game-logic

Game logic