T004 authentificate user with db storage

Please create user in the first line of this method.
Then call `hashPassword` with raw password and user instance. It allows you to remove 
```
if(is_null($user)){
    $user = new User();
}
```

block and don't create 2 instances of user