add function to create an object with a va_list pointer instead of its argument list. Obviously the va_list must contain the correct values for the class constructor.
created an authentication container. This could initialize the needed authentications and then be injected as a single object into the application class
use the new application container
add username to user class. This will contain the common name (cn) of an ldap authenticated user and the email address of an otherwise authenticated user. This is done to be able to have a good way to store an application user for ldap authenticated users.