Untested: adds existing user to campaign (unless owner or already added), creates invitation object if no user exists