Simplified auth plugin

Simplified version of #1763 

Introducing auth service.
- Stores persona.
- Handles building/destroying Permissions and Auth plugins (moved from AppController)
-Privacy directive uses it.
- Fix #1759 (The replies permissions were not filled, only the reading permissions
because privacy directive used to fill the rest. But a change made it not to touch the permissions of an annotation which has the permissions already set.)

Actually, keep it the way you have it. It's more explicit. It doesn't assume that the first time through (`newValue` is `oldValue`) will be `undefined` (maybe the auth service initialized really fast, before the AppController did its first digest ... who knows?).

In that case, though, let's just change the 2nd line. `$scope.login() if isFirstRun and newValue is null and not oldValue`. If, somehow, this controller is initialized after the service has already determined we are not logged in, then we'll see both values as `null`, so `oldVal is undefined` is too constrained.

Or maybe `$scope.login() if isFirstRun and not (newValue or oldValue)` is clearest. "If this is the first run and I've not been logged in or out."