extract send/reply/notify methods to a service module
exposing these methods through the messageable mixin adds a lot to the User object.
putting them in a service makes it easier to override them as well.
new method signatures for notify, send_message, and reply still wrapped by old signatures
the new signatures take attributes and options hashes to allow for extending the model without changing the methods.
specs have not been updated to use new signatures yet.
create items and conversations before receipts rather than as side effect
remove recipients attribute from items and pass to deliver() directly
update deliver methods to simplify receipt creation
remove mailbox_type scopes from conversations - access through mailbox.conversations()
remove deprecated methods from messageable
move notification-only scopes/methods to Notification
update signature on reply_* methods to pass through attributes/options
update specs for new send_message signature and simplify sanitizing
separate receipt creation from MailDispatcher call
notify() now returns a notifcation rather than a receipt
remove on_deliver_callback which has no unit tests
reverse subject/body args to notify() to match send_message
bump version since this changes the api
Merge branch 'feature/refactor_item_creation_delivery' into develop