Support sharing and unsharing surveys with registered users

Additionally, we now consistently use the `toObject` function (set in the `User` mode) to return only the user-related fields we deem safe. This creates one consistent point where the data is cleaned.