Competition data management

Addresses Issue #437 - Competition Data Management

## Overview

Allows uploading of competition bundles without data. Competitions will not be able to be “published” until datasets are provided. We will leverage the existing competition edit form to apply datasets to phases and add a new “My Datasets” page to upload and name datasets.

This means you won’t have to upload the same dataset multiple times to use between competitions.

# Tasks

## Functional Review How-To
This section describes how to test each feature in this PR

**For each of these you should be logged in and on the "My Datasets" page in the top right nav.**

- [x] Add a dataset
    - Click the "Create dataset" button in the top left of the content area
    - Verify all fields required
    - Verify error messages make sense
- [x] View list of datasets
    - After the above step you should be able to see the new dataset in the "My Datasets" list
- [x] Update a dataset
    - Click the "EDIT" link to the left of the Dataset in the list
    - Change the name to anything
    - Click "Save changes"
    - Verify the title has changed in the list
- [ ] Delete a dataset
    - Click the "DEL" link to the left of the Dataset in the list
    - Confirm you want to delete the dataset
- [ ] Functional review completed by @_________

## Code review

- [x] I did my own code review first
- [ ] This code was reviewed by @__________

## Features
**DataSet**
- [x] List template
- [x] Form template
- [x] List view
- [x] Add 
- [x] Update
- [x] Delete 
    - [x] On delete warn if it is used in any competitions

**Competition.yaml**
- [x] `reference_data` checked if UUID
- [x] `scoring_program` checked if UUID
- [x] `reference_data` checked if UUID
- [x] Add duplicate fields for the above but they point to `field_name_uuid`

## Template
**DataSet list view**
- [x] Add empty msg

## Automated Tests
**DeleteView**
 - [x] Requires login, 302 if not
 - [x] Requires ownership of data, 404 if not

**UpdateView**
 - [x] Requires login, 302 if not
 - [x] Requires ownership of data, 404 if not

**ListView**
 - [x] Requires login, 302 if not

**CreateView**
 - [x] Requires login, 302 if not

## Models


**Phase**
 - [x] Foreign key to data sets

## Extra
 - [x] "Submit Results" changed to "Submit"
 - [x] Make "Submit" button disabled when phase has no reference_data 
 - [x] Fix "Submit" button getting stuff and not refreshing properly
 - [x] DataSets competition.yaml DataSet can take key and point to URL
 - [x] Download organizer dataset, link on list
 - [x] Competitions not published until reference_data exists