Smarter upload recovery

Store read position to resume aborted upload at this point, read X-Last-Known-Byte on success to move read pointer