[core] switch to checking for is_first_login_ever existance

This is more stable and enables other backends to use it.
It also fixes the tests.