Core pr 6

This also contains PR5, which have not been closed yet.

Else only minor changes from last review.
The return value does not match the method signature here.

The method is called `ding_user_frontend_is_provider_user()` as the method returns `FALSE` if the user is provider user. Please rename to `ding_user_frontend_is_not_provider_user()` or the like.