[work in progress] Initial work to do content source refresh with step reporting

Everything is living one file now.  Need to discuss best place to put things.  

I created two steps:

ContentSourceRefreshStep is used to refresh a content source.
ContentCatalogRefresher is used for all sources, so it has ContentSourceRefreshStep child steps.

At this point only the whole catalog refresh works with the step reporting.  The single source reporting will just use the single ContentSourceRefreshStep. 


This does not need a copyright block specific for this file