Make updates more reliable: "balena pull" should support "HTTP Range" and be able to resume interrupted image/layer/delta downloads

We have a bunch of devices on unreliable mobile (LTE) connections where TCP connections get frequently reset. They struggle to do host and service updates whenever a delta has a non-trivial size (say >100MB): the “balena pull” aborts, the partial download is binned, and one has to retry from zero again.

This behaviour leads to a huge increase of (potentially chargeable) traffic, updates taking much longer, and in the case of host OS updates us having to manually retry several times.

Most registry endpoints already support HTTP range requests. If the device-side supported it, too, then updates via unreliable networks would be faster, more reliable, and consume less traffic