Refactor and generalize login page and authentication

Generalize code for all omniauths:
 - config/gitlab.yml.example
 - config/initializers/1_settings.rb
 - config/initializers/devise.rb
 - app/controllers/omniauth_callbacks_controller.rb
 - lib/gitlab/auth.rb

Create new login page:
 - app/helpers/application_helper.rb
 - app/views/devise/sessions/new.html.haml:
 - app/assets/javascripts/login.js:
 - app/assets/stylesheets/sections/login.scss:

Fix old files for new variable names:
 - app/views/profiles/account.html.haml
 - app/views/profiles/show.html.haml
 - lib/tasks/gitlab/info.rake
Add email_domain option to omniauth

This allows us to create emails for omniauth providers who do not supply email address.

This option needs to be used carefully as it might introduce security issues.

So be sure that auth.info.nickname + email_domain will be valid and correct email address in all cases.
Move ldap into refactored omniauth

Remove all ldap specific code as generalized code does all of it's work.

Fix tests to match changes.
Add exception handling to omniauth_callback_controller

Log all exceptions and flash "Internal application error occurred"
Add omniauth pam authentication support

Note that currenlty ruby19-pam + pam_unix can't authenticate users if not executed as root.
So currently pam can be used with other kind of pam modules (ldap, sssd, krb, ...).

Check out https://github.com/canweriotnow/rpam-ruby19/issues/5 for more information.