Refactoring EMS refreshers' core logic into mixin

There is a lot of logic copied between the EMS Refreshers.  This removes a lot
fo code and logic duplication.

Caveats:

1. The VC Refresher is quite a bit different from the other refreshers, so it
   was largely left as is.
2. The NonEmsRefresher wasn't touched, since it's not an EMS refresher

Skipping CI for this rebase because the only update was a comment
[skip ci]
Merge pull request #1161 from blomquisg/refactor-ems-refreshers

Refactoring refreshers' core logic into mixin