Start support for drive actions
Implement matrix encoding
Fix Player class

- Initialize action correctly
- Implement encoding
Fix game score function and player creation

- Calculating score raised when accessing SCORE table incorrectly
- Player needed a name parameter
Finish server side driving logic

- Fix lane allocation - was busy looping
- Make matrix configuration more sane, allowing validation of message
  values (e.g. action in oonfig.ACTIONS).
- Cleanup matrix drawing
- Using currently simple if/else block for dipatching actions, since
  the table did not work as it was defined. This may be simplified later
  using a table.

Client driving logic is not there yet - we need to initialize all cars
on init, allocate a car to each player by player name, and draw the car
according to the player lane and speed.
Fix player speed

Faster cards have lower speed values since the matrix origin is at the
top left.
Dynamic car allocation and drawing

Each player is allocated now a random unique car on the server instead
of a random lane. The client render the current players cars.

Server game logic has major issue - when you lose life because you
bumped into an obstacle, you continue to lose life when on the next
turn, since move back with the obstacle. We need to either remove
obstacles or find another way to handle this.
Fix player car access

On the client, player is a dict currently.
Get extra life if you picked a penguin.
Simplify matrix creation

Previously we were generating too many obstacales and had complex logic
for validating generated obstacles. Now we generate one obstacle per
row, and use simple random logic - it should be good enough.
Add jitter to cars

The game looks more dynamic with some jitter.
Continue to play after life go to zero.

We will have to refine the rules later when we have smarter example
drive modules.
Remove obstacles after bumping into them.
Merge pull request #41 from nirs/driving

Driving