Add obstacles and actions modules

We need these modules both in the server and client code. Even more
important, we need these in the driver code, and we certainly do not
want to have ugly imports in the kids code.

Although the modules are minimalistic (specially the actions module),
this allows nice code as:

    from common import actions
Remove unused file

gameServer.py was never used.
Move all configuration to common config

We have server configuration, client configuration, and common
configuration. The simplest solution is one config file in the common
directory.

While moving the configuration from matrix_config, all names renamed to
lowercase. Configuration is *not* constants, which do not change.
Rename matrix module to track

Racing is done on a racing track, not on matrix. The old name was
specially silly when accessed self.matrix.matrix. This read better, now
as self.track.matrix.
Move message module to common

This is another file that used by both client and server.
Separate server and client models

Previously server and client were mixed, forcing installation of pygame
on the server for no good reason, and making the code harder to
understand (why server.matrix.py supports drawing?).

Now server has simple objects for manaing game state, and client has
simple objects for rendering game window. The server send the game
objects state to the client, which use the state to update the objects
that render the window.
Fix whitespace
Fix obstacles order

Both road textures and obstacles must be sorted by file name to get the
texture in the correct order.
Add missing __init__.py in server, making it a package
Make resources accessible when running the game from any directory

Previous you had to run the game in the root directory to get the
texture files found. Now the game can be installed somewhere, and you
can run from anywhere.
Reorganize project

- All code is not in the rtp (temporary name) package python.
- Add readme to the example directory
- Update main readme
- Remove readme placeholders in server and client directories
- Remove non-working build system, lets add it later if needed
- Fix setup.py so we can create source tarball - this is good
  enough for delivery.
Update readme
Fix bugs in best_driver example

After the addition of the world object, the code was not checking for
out of range location any more, crashing the client when tyring to drive
right or left out of the matrix.

Additionally when finding a peguin, the code was not picking the penguin
as it should. It found a penguin on the next row, then checked if a pick
is needed on the current row.

To make it easier to create readbale code, which is very important in an
example code for beginners, both world.watch_item_in_cell and valid_move
accept now a tuple argument for position. This allows creating code like
this:

    up = car.x, car.y - 1
    if valid_move(up):
        ...

Using easier world api, it was possible to fix both issues and make the
code much more readable.
Merge pull request #47 from nirs/cleanup2

Cleanup the mess (v2)
Merge pull request #48 from nirs/examples

Examples fixes