Better async-await usage

 - Removed unnecessary `await`s wherever possible.
 - Applied `ConfigureAwait(false)` to avoid potential deadlocks. This also has slight performance improvement. Refer to http://channel9.msdn.com/Series/Three-Essential-Tips-for-Async/Async-library-methods-should-consider-using-Task-ConfigureAwait-false- for more info