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
Instead of this complicated method, what if we just removed the word "refresher" from all of the refreshers...they're namespaced anyway.

So, EmsRefresh::Refreshers::Ec2Refresher becomes EmsRefresh::Refreshers::Ec2

Just as clear.  You'd have to change the EmsRefresh.refresh code as well.  What do you think?