File upload component

File upload functionality added to challenge package
Setting this value in config seems fragile.  How about using a string which represents the name of the middle ware.

Example config:

```json
{
  uploads: {
    type: s3,
    options: {
        secure: false,
        key: 'KEY',
        secret: 'SECRET',
        bucket: 'BUCKET',
        region : 'REGION'
    },
}
```

Then the file storage adapter can be loaded by doing require(config.uplods.type + "UploadMIddleware") and pass in the options or pull it from config.