Resend email if an error is encountered while sending the email #2412

Checked feedback and evaluation sending of emails (reminders, opening, closing and published) to ensure that all the emails are sent individually.

Any errors while sending the email will be handled by the task queue, which is retried up to 5 times with a backoff time of 30seconds each time.

Also tested the retry functionality on my staging server.
Actually, the exception is handled in the [sendEmailWorkerServlet.java] (https://github.com/TEAMMATES/repo/blob/master/src/main/java/teammates/logic/automated/SendEmailWorkerServlet.java), where the error is logged before the servlet sets a http response status code for the retry.
```java
catch (MessagingException e) {
       log.severe("Error while sending emails via servlet: " + e.getMessage());
       resp.setStatus(responseCodeForRetry);
}
```

If the exception is caught here, it will intercept the exception handling and the task queue will not retry.