Removed unnecessary async/await keywords

I am Semih Okur, a PhD student in the CS department at the University of Illinois. I'm currently doing research on asynchronous programming in phone applications. I developed a tool that automatically improves async/await usages by doing transformations.

The tool found some opportunities in your application. There was no need to use async/await for 24 methods. It will decrease the overhead that is caused by async/await state machine and it will simplify the code. Removing async/await does not change the behavior at all.

The tool also found a potential deadlock if "ConnectAndListenAsync" method is called from the client's UI thread, "ReceiveAsync(response)" method will be awaited and the caller, "GetMessage" method will wait for it. When "ReceiveAsync" method continues after "await" point, it will not continue because UI thread is busy for waiting ReceiveAsync. 

The tool solved the deadlock easily because "await" keyword is unnecessary in ReceiveAsync method. By removing unnecessary async/await keywords, the potential deadlock is automatically fixed.

Are you interested in merging this pull request? If not, please let me know why.

Thanks for your time,
Semih Okur