Relating Session Types and Behavioural Contracts: The Asynchronous Case