Add social auth and two factor

- Merge Authentication into Core
- Add social login support
- Add two factor support
- Rework options model for startup