Fixing SMTP mailer

It is unwise to use Task.Factory.StartNew in ASP.NET

The update uses the old NET 2.0 asynchronous send method in order to maintain compatibility but realistically it should be using the new awaitable methods. This requires async all the way up though to the calling ActionResult.

e.g.

```
/// <summary>
/// Sends an email asynchronously, logging any errors.
/// </summary>
/// <param name="msg">
/// The <see cref="MailMessage"/> to send.
/// </param>
/// <param name="credentials">
/// The <see cref="NetworkCredential"/>s containing identity credentials.
/// </param>
/// <returns>
/// True if the email is sent successfully; otherwise, false.
/// </returns>
public async Task<bool> SendAsync(MailMessage msg, NetworkCredential credentials = null)
{
    try
    {
        // We want to send the email async
        using (SmtpClient smtpClient = new SmtpClient { Credentials = credentials ?? CredentialCache.DefaultNetworkCredentials })
        {
            await smtpClient.SendMailAsync(msg);
        }

        return true;
    }
    catch (Exception ex)
    {

        LogHelper.Error<SmtpMailer>("Buzz.Hybrid.Net.SmtpMailer failed sending email", ex);
        return false;
    }
}
```