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)
Why make this public and expose a `SetHTTPClient`?