Don't override UserAdmin for custom auth model

Since Django doesn't register a custom user model with admin by default, `admin.site.unregister(User)` would fail. Instead, we can provide two things - a mixin to add to custom user admin, and override default admin if there is no custom user model. 

There's still a conflict if there are multiple libraries trying to override `UserAdmin`, but that's out of scope for this PR.