Auto Async Issue

Converts classic TaskCompletionSource/ContinueWith code to new async/await.
Disabled for C# < 5.0.

```csharp
public Task<int> MyTask() {
   var tcs = new TaskCompletionSource<int>();
   Task.Run(() => { Console.WriteLine(1); })
      .ContinueWith(precedent => { Console.WriteLine(2); })
      .ContinueWith(precedent => {
         Task.Run(() => { Console.WriteLine(3); }).ContinueWith(precedent2 => { tcs.SetResult(42); });
      });
   return tcs.Task;
}
//Becomes:
public async Task<int> MyTask() {
   await Task.Run(() => { Console.WriteLine(1); });
   Console.WriteLine(2);
   await Task.Run(() => { Console.WriteLine(3); });
   return 42;
}
```