Update QueryForm to handle username/email-based sharing

Adds necessary fields and methods to QueryForm to enable username/email based sharing of Query models. This pull requests also includes tests to completely cover the QueryForm save() and clean_usernames_or_emails() methods. Additionally, the clean_json() has been appropriately split into clean_context_json() and clean_view json() to match the actual field names. clean_json() was useless.