The group decided to merge PR #422 now and clean up later. Key issues to consider:
- What happens if date_differences() gets a badly-formatted date (shouldn't happen)? A future date(could) ? Can callers handle?
- In create_scores(), what should happen if read_rfm_edges() returns None?
- It might be cleaner to put the r,f,m processing in a separate function for each and put a try/catch in each. What to return if a failure?