Move QR generation to the browser, saving some time and effort on the server.
Results in a crisper QR code, and there is a slight performance improvement (minor). Closes #188 (closed).
Before:
[I 210810 17:36:59 web:2250] 200 POST /calculator/report (::1) 2686.36ms
[I 210810 17:37:04 web:2250] 200 POST /calculator/report (::1) 1171.51ms
After:
[I 210810 17:37:28 web:2250] 200 POST /calculator/report (::1) 2574.42ms
[I 210810 17:37:34 web:2250] 200 POST /calculator/report (::1) 1198.98ms