Update EasyAuth to not use singleton, but context.

And update User to match IAuthUser, mostly a change to user.can() so it
accepts multiple arguments