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)
We could make these separate interfaces, `FormBackend` and `MultipartBackend`. In our implementation, those would be the same thing but it would allow others (me!) to implement a custom API backend without including a stub implementation of the multipart bit.