Coordination Models and Languages: From Parallel Computing To Self-Organisation