Improve passing of cursors in UI

- Programmes, projects and propertiers only receive their relevant
  cursors.
- Added refresh channel
- Replaced datetimepicker component with one that uses app state only
- Changed comparison and search page to match new app model
- Fixed minor bugs in the UI and API
Tidy up and fix minor bugs

- Don't allow to create programmes with empty string as a name
- Don't post projects with empty str as a name
- Scroll to property details tab
- Fix refreshing of profiles after PUT
- Show datetimepicker when adding new profile.
- Don't show 'No property' when no property is selected.
- Add period dropdown
- Change dropdown to select.
Merge pull request #223 from MastodonC/feature/om-cursors

WIP: Feature/om cursors
Display calculated fields.

Only build it when we have data.
Merge pull request #227 from MastodonC/feature/display-calculated-fields

Display calculated fields.
Fix uuid generation for template data download.

We were creating an s3 key with an empty segment, which led to 403
errors from aws.
Use of enhanced key gen from kixi.pipe 0.17.10.
Update etl to account for ElasticSearch.
further uuid / key changes.
Fix upload status.