Backup and spend order should agree with each other and be stable and random
For an external agent to efficiently manage backup/recovery of ZKAPs, it needs to be able to retrieve all unspent ZKAPs and then put them back in again later. Ideally, it will also track ongoing spending so if recovery is needed it can re-load ZKAPAuthorizer with only the ZKAPs that it doesn't know have been spent. This avoids ZKAPAuthorizer trying to spend a lot of already-spent ZKAPs after a recovery. For this scheme to work, spend order needs to be stable over time and across backup/recoveries. spend order is currently stable and determined by ZKAP insertion order. however, backup order is stable and lexicographic on token text representation. Make both orders the same and based on something more explicit than the SQLite3 implicit rowid ordering.