make sure valid_domains is a superset of owners

`valid_domains` seems to not have a clear definition (as evidenced by: https://github.com/dimagi/commcare-hq/blob/master/corehq/apps/hqmedia/models.py#L51)

I'm going to make the definition __the list of domains that have access to this media file__
whereas `owners` will be defined as __the list of domains who claim to own the file (aka the list of domains that uploaded this file directly to their project space)__

to do this, I want to just make sure valid_domains is a superset of owners

======
Update:
This script now includes a lazy migration that adds users from `shared_by` to valid domains. This fixes issues with current domains that are in a bad state. 

Some more context: A domain would exist in media file's `shared_by` list if the domain chose to share that file. When publishing an app to the exchange with media, the domain gets added to each media files `shared_by` list. This can occur even if the domain isn't listed in `owners` or `valid_domains` (which happened whenever someone published to the exchange with media imported from a different app). If a domain is in `shared_by` then we know that domain is using that media. So in keeping with the new `valid_domains` definItion we need to update `valid_domains` with all the domains in the `shared_by` list.