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 was indeed talking about `Ec2`.. my concern is that across all possible names there, the chances of one of them being or becoming a legitimate top level name, are very high -- precisely because without any other.. qualifier, they are the bare names of external systems that we know how to talk to.

See Rails precedent in, for example, `ActiveRecord::ConnectionAdapters::PostgreSQLAdapter`