OutgoingMessage methods for async email sending

#sendable? checks whether the message is in a state that we can send,
otherwise it raises an appropriate exception. Not ideal (should just
return false, but this is existing behaviour)

#record_email_delivery updates the OutgoingMessage instance, logs
an event with the InfoRequest and updates the InfoRequest state.
Extract initial and followup sending from model
Use updated method for sending an InfoRequestBatch

Could do with extracting the sending from the model, but this allows
the removal of OutgoingMessage#send_message
Extract resending a message from the model
Remove now-unused OutgoingMessage#send_message

Models should not send emails
Merge branch 'issues/1778-send-message' into rails-3-develop