race: simple example using EiffelThreads (ISE Eiffel 4.2)

DESCRIPTION:
This example consists in launching several racers, performing n iterations 
(number of racers and iterations are defined by the user). For instance,
you can try to launch 10 racers, running during 10 iterations.

Each racer is an EiffelThread: the number of racers and iterations can be 
as big as you want provided your system resource can manage it. 

race use threads and mutex but the Eiffelthreads library also provides
condition variables, semaphore, policy scheduling, thread control mechanisms.

Compilation:
In most case, you just need to melt the code and run the example.

Compatibility with Eiffel 4.1:
To compile this example with ISE Eiffel 4.1, you need to modify the Eiffel
code: the PROXY class was expanded in Eiffel 4.1, then you have to remove
the '!!' before any call to feature 'put' on a PROXY object. 

The use of proxy object: 
This example put into a proxy the mutex of
synchronisation, but in general you do not have to put any MUTEX, SEMAPHORE
or CONDITION_VARIABLE into it. All other shared object needs to be put into
a proxy. In the future releases, the proxies are bound to be obsolete and
Eiffel will manage internally every shared object.

