JOJ-28; Fixes to extents page (upload), spatial extent class allows min and max to be equal (for single site)
JOJ-28: Added a special 'user upload driving data' driving dataset which the user will select to allow them to load their own single cell datasets.
JOJ-28: Added some initial backend work to store and retrieve user uploaded driving data parameters
JOJ-28: Changes / fixes to driving data page.
JOJ-28: Parses input driving data text file, passes file lines to job runner client
JOJ-28: DrivingDataControllerHelper takes JobRunnerClient as optional constructor parameter
JOJ-28: Job runner now saves driving data files to the model run directory
JOJ-28: Fixes to extents page etc
JOJ-28: Small fixes to helper, flash message etc
JOJ-28: Layout changes to driving data page
JOJ-28: Initial backend for download
JOJ-28: Changes to the way the F90 helper does lists (it's smarter and uses spaces rather than commas)
JOJ-28: Put some working code inside AsciiDownloadHelper
JOJ-28: Small changes to AsciiDownloadHelper
JOJ-28: Caching and formatting fixes
JOJ-28:'Snap to grid' works now
JOJ-28: Fixes
Merge remote-tracking branch 'remotes/origin/JOJ-28'

Conflicts:
	job_runner/job_runner/controllers/jobs.py
	job_runner/job_runner/services/job_service.py
	job_runner/job_runner/utils/constants.py
	majic/development.ini
	majic/joj/services/dap_client.py
	majic/joj/services/job_runner_client.py
	majic/joj/services/model_run_service.py
Merge branch 'master' of github.com:NERC-CEH/jules-jasmin