Table QR codes need Math.floor on width and height values to avoid invalid codes

Table-based QR codes weren't being calculated with Math.floor to round down their <td> widths and heights, and were frequently being drawn as invalid, "squeezed" QR codes. this fix uses this. This rounds those down as well as the full qr code itself to avoid other issues. One problem is that this approach doesn't necessarily spit back a QR code of the exact width and height that you asked for, but it at least is always valid, and since it rounds down, it'll avoid layout problems pretty handily.

If a valid QR code with the exact width provided needs to be generated, you realistically would need a canvas.