Standardise querying of date fields

We've had a bit of a discussion of this in #75 (closed) & #15 (closed) which got far too complicated far too quickly. I know others have opinions on handling date-based queries and I think I can summarise a few of them, so let's see:

  • two search parameters, startDate and endDate, should be sufficient
  • startDate and endDate can be provided as either ISO8912 dates or as date+time+seconds; "start" will be taken as the beginning of the interval and "end" as its conclusion
    • eg. startDate = 2020-10-02, endDate = 2020-10-02 returns all records between 2020-10-02 00:00:00 and 2020-10-03 00:00:00
  • for simplicity, we should match only on hasPointInTime and hasBeginning, and ignore hasEnd
  • results should always be returned in chronological order

Thoughts on this as a general approach going forward?