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