Add coupon handling

I think you mean `coupon char(24) not null` here ;)

Can we also move the new coupon field to the end of the table? SQLite doesn't let you alter tables and add columns except at the end, so that would help keep the tables consistent when applying an upgrade script to an existing site.