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
That sounds likely to end up causing pain.. the Rails auto-loading infrastructure gets quite confused when a top-level constant and a nested constant have the same name.

I'd keep the names as they are (also, retains the noun-iness of the class names), and just slightly simplify this to something like:

``` ruby
self.class.name.demodulize.sub(/Refresher$/, '')
```

.. which still doesn't excite me, but presumably this will go away when things get rearranged under providers.