This is another version of the master/slaves example, using asynchronous communications.

There is 3 kind of processes:
 * Master: creates some tasks, and dispatches them to its slaves
 * Forwarder: get tasks from master, and dispatch them further
 * Slave: get tasks from either master or forwarder, and run them

At the end of the execution:
 - the master sends FinalizeTask to every known slave to stop them,
   using dsend instead of send. That's non-blocking with no way to
   know if/when the communication succeeds. It is intended for
   communications where you don't care to know whether your message got 
   received or not. The process then sleeps 20 seconds because we have
   a strange bug for now when the receiver gets a message from a
   terminated process. This should not be the case, actually, that's a
   JAVA specific bug, but I don't really have the time to dig in right
   now.

 - On reception of FT, forwarders dsend FT to every slave, and stop
   after a little while.
 - On reception of FinalizeTask, slaves stop.
 
Other non-blocking primitives will get used here as soon as they are 
added to the bindings.