feature(core): better registration of usersettings handlers

This will allow plugin developers to replace specific parts of the user
settings action without redoing part of the core actions.

For example:
If I wanted to change the password policies. I had to unregister the default save handler and re-register all but the password handler.

This way I only have to unregister the password handler

- [x] Commit message is in standard format
- [x] Has LGTM