.Net compatibility fixes regarding tasks that throw:

1. Always wrap the call to a TaskCompletionSource.SetException() in an AggregateException (even when the argument was already an AggregateException,
2. Implement AggregateException.Flatten(),
3. Awaiting a task now throws the inner exception (#294)