Allow for OAuth only functions (raise RequireOAuthScope)

Restructure Error Classes

- OAuthScopeRequired
- LoginRequired
  * LoginOrScopeRequired (renamed, and inherits from both)
  - ModeratorRequired
     * ModeratorOrScopeRequired (renamed, inherits from both)

Renamed OAuthRequired to OAuthAppRequired