[JRO] Adjust mailers so that they are delay'able

The mailers were being passed AR objects, which Resque isn't too fond
of, so they were changed to be id's and an array so that the work could
be delegated to the inside of the mailer deliver method.

Through the process of changing this it exposed some poorly written
tests. They've been changed and fixed.