Authentication provider refactor

* Allow plugins to calculate their authentication provider row.
* Use an authentication provider's actual sign in and register url in SignInUrl() and RegisterUrl()

These changes are happening because embedded forums are increasingly needing to know actual sign in links rather than use a redirect.
Note that some plugins will break because of these changes and must be tested.