invoice: hide unpaid invoices linked to a deleted service instead of deleting them completely

Schema change:

in `sqlite3`:
```sql
ALTER TABLE invoice
ADD hidden BOOLEAN;
UPDATE invoice
SET hidden=0;
```

Hidden invoices are visible and editable by admins, but not by the users that owned them. This has something to do with tracking declined Stripe charges.