Fix #347

Add AsyncResult support to negotiation methods
Extend integration-tests to assert the behavior.

Signed-off-by: Clement Escoffier <clement.escoffier@gmail.com>