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