Rely-Guarantee Modular Based Reasoning for Message-Passing Programs