Adds support for arbitrary auth scopes.

This enables support for the "Extended Scopes" feature.
See more: https://developers.app.net/reference/authentication/#extended-scopes

I've added a compatibility layer for `ANKAuthScope` enum, but I'm not sure if that's the best way going forward. This PR uses string constants instead, so they can be passed into a `NSArray` with extended scopes:

```
@[ kANKAuthScopeBasic, @"messages:net.app.core.pm" ]
```

This conflicts pretty badly with my last PR #83, so whichever one is merged first I'll re-base and fix conflicts manually.