some more refactoring around messages to handle re-try logic
schedule message implements ISchedulable and IDeliverable
renamed Sent message to Delivered
unit test for undelivered reminder logic; envolved adding Schedule message constructor parameter