Add FileUpload

* adds uploads.stripe.com endpoint
* adds support for multipart content
* some interface changes since we now have multiple backends
* bump to 4.0.0 since this is breaking

r? @wangjohn 
cc @metcalf (since it changes some of the interfaces you're relying on)
Another possible reason why we'd want to use headers passed into `Call` -- `contentType` here seems very oddly specific (especially compared to the rest of the arguments to this function).