Fire group events in `UserInfo::updateGroups()`

Fire on_user_enter_group and on_user_exit_group in
`UserInfo::updateGroups()`

`UserInfo::updateGroups()` does not call `User::exitGroup()` and
`User::enterGroup()` and instead used single SQL `DELETE`.

- Fire group events for each group removed or added
Merge pull request #1534 from mkly/fire_group_events_userinfo_update_groups

Fire group events in `UserInfo::updateGroups()`