- Clean up main.go (by moving init to init.go) and improve
composition comprehension.
- Refactor app context and init struct and field names.
- Update package dependencies in initialisation.
This commit introduces a `blobstore` package and refactors the existing
upload mechanism. Upload is now handled by `providers` and the two
bundled providers are `S3` and `Filesystem`. `app.Blobstore` initialises
the correct provider based on the configuration and handles `Put`,
`Delete` and `Get` operations.
- Toggle options to enable self-service data export and wipe
options on the public unsubscription page. Subscribers can get
a copy of all data on them e-mailed to them as JSON, or
instantly wipe all their data.
- Refactor "unsubscribe" pages and URIs to "subscription".
- Add export icon to subscriber admin view.