Refactoring refreshers' core logic into mixin

Supplants #777 for now.  That PR will be remade later based on this code.

The main purpose here is to introduce a common way to set the refresh status and
handle some common logging for the EMS Refresh process.

Two caveats:

1. The status/logging was copied/pasted for VC Refresher since the logic there
   is quite a bit different from the other refreshers.
2. The NonEmsRefresher wasn't touched, since it's not an EMS refresher

Why not just put this logic into the base_refresher?  Because not all refreshers are EMS Refreshers.  The mixin approach allows only the EMS Refreshers to adapt to this logic flow.

@Fryguy, please review
I'm not thrilled with this method name, perhaps `parse_inventory`?