fixes #4641 Ensure default user role only after we save/update.

## Solution

Use `after_save` callback to save a user role.
Add default user role for users who don't have a role assigned.

## Problems

I tries to write a regression test, and even though I use `test_after_commit` gem, the test didn't fail. So I removed it.
```if not xxx.nil?``` ----> ```if xxx.present?``` 

In this case, I'd explicitely write this condition like 

```ruby
role = Role.find_by_name('Anonymous')
if role.present? 
  self.roles << role unless self.role_ids.include?(role.id) 
end
```

to avoid two ifs (in this case if and unless) in the same line which is difficult to understand.