Upload destination config

Implementation based on discussion in this issue: https://github.com/bolt/bolt/issues/1393

This allows users to specify an upload destination in the contenttypes.yml file. The majority of users will use the following method.

```
...
fields:
    gallery:
            type: imagelist
            label: 'Gallery Images'
            upload: "custom/location"
...
```
This will result in the files being uploaded to `files/custom/location` by default the standard files upload handler is used.

#### Advanced usage

For users who want to do more advanced upload strategies there is support for namespaces and support for multiple upload strategies. Here's an example that delegates the uploads to a different handler:

```
...
fields:
    gallery:
            type: imagelist
            upload: "ftp://custom/location"
...
```

Finally the upload config can also accept an array to allow multiple destinations. 

```
...
fields:
    gallery:
            type: imagelist
            upload: ["local/location","s3://bucketname"]
...
```

Support is handled for the following field types:

* image
* imagelist
* file
* filelist