re-organized $auth providers

- moved providers for readability
- made the provider getter/setter more flexible (with iterator)
- now, if no params are provided, it will also return current config