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