Concurrent Object-Oriented Programming with Agent-Oriented Abstractions: The ALOO Approach