Enable archiving of products

Things that this PR does:

- Adds UI to archive products (duplicated from the users page)
- Refactor the users and products UI into one base view model function to remove duplication
- Adds sql table to track products (which is currently one way synced from couch)
- Prevents archived products from being sent to the phone
- Adds a filter to include archived product data in reports
- Prevents archived products from being downloaded in product export

I see `max_length=255` in other places. how did you choose 100 and is there any significant downside to making it larger?