Replace ZXing-based QR code generation with Prison
We meanwhile depend on that anyway for barcode decoding here, so we can just as well use that for barcode generation as well.
This also avoids using ZXing directly here, so we don't have to worry about its API changes (see e.g. !49 (closed)).