ARGO-322: fix impersonate

application_controller.rb:  current_user method is what's used to get a User object for the logged in user by the rest of the codebase.  set impersonated groups on the user object here so as to centralize that behavior.

auth_controller.rb:  rename set_groups to remember_impersonated_groups and remove_groups to forget_impersonated_groups so that the names are distinct from the User methods that actually set the impersonation info on the User object (as opposed to just noting it in the session for subsequent setup on new User objects).

catalog_controller.rb:  remove the logic in session_groups that sets impersonation info on a User object since it's more appropriately located in the ApplicationController::current_user method (so that it's invoked every time an object is created for the logged in user).  keep the logic for creating an instance var for the logged in user, and rename the method to set_user_obj_instance_var since that's now a more appropriate name.

user.rb:  rename the groups instance var to groups_to_impersonate since it's more descriptive and doesn't share a name with the groups method.  rename set_groups method to the more descriptive set_groups_to_impersonate.  minor style cleanup on the groups method.  refactor the is_admin, is_viewer, and is_manager methods so that they're wrappers for the belongs_to_listed_group? method, since all three of those methods had pretty much the same logic.  general whitespace cleanup.

_user_util_links.html.erb:  remove_groups -> forget_impersonated_groups rename

groups.html.erb:  set_groups -> remember_impersonated_groups rename

routes.rb:  remove_groups -> forget_impersonated_groups rename.  set_groups -> remember_impersonated_groups rename.