re #91 : Allow to store users in the user provider

- Add KUserProviderInterface::store() method
- Add KUserProviderInterface::isLoaded() method.
Code cleanup
re #91 : Ensure the behavior is mixed with row objects.
re #91 : Lazy load groups and roles.
re #91 : Lazy create the user object if it doesn't exist yet and store it in the provider for re-use.