Creates pseudocode for project-related cache refreshing

This code, extracted from a real server, is supposed to manage work
around keeping cached data fresh.

The data came from a variety of sources -- some very slow/expensive to
talk to -- and different types of data changed more or less frequently
than others.

Different types of projects also needed different types of data loaded,
and sometimes at different rates.

So this code was dealing with all of these responsibilities:
- When to refresh
- What to refresh
- How to refresh each data type
and most of those responsibilites fall on the ProjectDataReloader class.