Uppercase first username letter for compatibility
Moved login redirect to its own function
Documentation
Allow for signup through SAML
Correctly follow hook API

Return true on success, string on error message, false on fail. Success
means that the plugin ran correctly, not necessary that a login
succeeded.
Bugfixes

- Incorrect visibility for setGroups
- attrName should be variable, not string
Code cleanup