Refactors GroupsHelper::time_since

Separates `GroupsHelper::time_since` into three different methods:
* `GroupsHelper::time_units` which returns a hash with five different ways to compare times
* `GroupsHelper::check_times` which goes through each object in `::time_units` and returns the largest possible unit
* `GroupsHelper::time_since` which finds a time, and calls `::check_times`