Custom product data

This PR is for merging custom product data into the custom user data branch (https://github.com/dimagi/commcare-hq/pull/4292) that it was branched off of. Ultimately these are going live together, but this PR is being made to make review easier.
No need to change, but `.keys()` is unnecessary. Iterating over a dict yields its keys.