Add tasks support for contract methods. At the first stage it can be done with modifying AnswerAwaiter in the interlocutor + change emit generation. On the second stage - answer awaiter has to be modified with AsyncResults (instead of ThreadEvents)