Re-work the time interval concept, and fix the concentration calculation for intervals

Merged Philip Elson requested to merge pelson/improved_concentration_calculation into master

This MR is quite a big refactoring of the cara.models definition (so ping @mrognlie). In it, I:

  • Fix #14 (closed) by re-writing the concentration equation, and recognising that we had an if statement in there for no other reason than the equation was formulated slightly differently in the first place. In reality, a bit of algebra shows that the two branches were effectively the same thing.
  • Pull out the concept of intervals from ventilation and the infected person definition, thereby giving us some flexibility in how we want to define time ranges
    • Note that this means that the way to build a model has changed - it is likely to break !8 (merged).
  • Update the existing app to use the new scheme
  • Add some tests to validate that the new scheme is doing what we want

Merge request reports