It turns out many PXE firmwares request tsize to size the download
buffer, and will refuse to download at all if the server cannot
provide a tsize.
This unfortunately breaks API compatibility to add a size parameter,
but I think it's an unfortunate necessity to make this work.