Create participant on task addition

References: 
* https://www.pivotaltracker.com/story/show/79323986
* replaces pull request #474 

Major changes:
* Introduction of `AssignmentManager` service class which is responsible for handling all the necessary logic with participants when a task assignee changes
* `UserMailer` gracefully handles situations where it doesn't know who instituted a particular change

--- AC + FF

looks good. just curious to know if these changes are designed to prevent a non-result from raising exception? 

[RW]