Upload.upload: finally tell which line was sent last, if the upload was interrupted.
Future: added dependencies so that the weak pointers don't collected too soon
Future.wait: use set_if_unset

Though this introduces a logically interesting situation, does the
future depend on which event just happens to occur first? There is
a note in the interface about this.
Future.t#add_persistent_callback: added a mechanism for adding persistent callbacks
Future: raise FutureAlreadySet when setting an already-set future value
Upload.receiver: Send % after abort, not %~
Upload.receiver: slightly more robust error handling against JSON errors
Future: added documentation