Add IPFS support to Uppy, a JavaScript file uploader

Description

Uppy https://uppy.io is a JavaScript file uploader. Adding FISSION / IPFS as a custom upload destination and source.

User Impact

Who would want to use this and why?

Anyone that wants to support a high quality full featured full uploading in their app can use Uppy — including access to other systems such as Google Drive, Dropbox, etc. — but have the files then uploaded / side loaded to IPFS.

Features

Enable IPFS as a destination for uploads

there is already an AWS S3 destination that can be modified.

The other Destination plugins may be simpler to look at, such as the basic XHR Upload — as with FISSION, just need the endpoint and to set authentication headers/

Set default gateway

Will default to FISSION gateway, should be configurable

Companion Support for IPFS as a Source

Optional: add support to Companion to use IPFS as a source of files — this will require adding OAuth support to FISSION web API. This is more complex and should be left until later. Like, when we support OAuth. Although @expede has a whiteboard idea about generating OAuth tokens from private keys.