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. 


Again, It's really unfortunate this needs to be added here since this has nothing to do with plugins. Hopefully we can moved to a more suitable location when the step reporting is decoupled from plugins and publishing.