Add ability to resume multipart uploads.

Adds second optional argument to constructor, `sessionDetails`,
which can receive an UploadId and set of Parts as recorded from
a previous session.

Important: the Parts array must be contiguous and start with 1.
There should be no gaps, as the new part number is calculated from
the length of the array, not by actually looking at the numbers.

On resume, a 'ready' event will be fired just before the first new
part begins uploading, with the resumed UploadId.

Tests included.