At the moment we cannot see weather a user left a project due to their
membership expiring of if they themselves opted to leave the project.
This adds a new event type that allows us to make this differentiation.
Note that is not really feasable to go back and reliably fix up the
previous events. As a result the events for previous expire removals
will remain the same however events of this nature going forward will be
correctly represented.
for posterity.
Also fix issue where destroying a Milestone would cause odd, transient messages like
"created milestone" or "imported milestone".
Add "in" preposition when creating and destroying milestones
Closes#2382