MOTECH-1409: Fixed reliability of message-campaign db

Updates will now also delete the enrollments from the database.
When we attempt to enroll an already enrolled ExternalID into
a campaign, it will be ignored(only logged) if the date/time is
exactly the same. If not we will throw an exception.

I also fixed an exception that would be caused for enrollments
that had no messages scheduled for them.

Change-Id: I039351711221fb2f160e40aeffdd1d9ad52298aa
Merge "MOTECH-1409: Fixed reliability of message-campaign db"