Mobile variants

Applications can configure `isMobile` function, which should be called by authorization modules whenever they need to establish if mobile vs. full login pages need to be rendered.

Most oauth/oauth2 providers are capable of discovering mobile browsers without any external help. But some applications may prefer to force a specific version (for example based on user preferences).
isMobile determination can be done on a per request basis (request is passed as a parameter)

Existing modules do not have to be changed unless (or until) they want to use this new functionality.