MERCURIO: An Interaction-oriented Framework for Designing, Verifying and Programming Multi-Agent Systems