expect file object, not just path
expect storage object
return nil on GET error
URL encode file names
remove leading slash from scope
add upload form for synchronous uploads

This is pretty inefficient: a file is first uploaded to Libertree and then
forwarded to the remote storage provider.  Hence, this method should only ever
be used when JavaScript is not available.