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

Correct. In the case of assigning an admin to a task, we add them as an assignee on a bunch of other tasks outside the context of a controller, so there is no invitor, and `invitor_id` is `nil`.