Inviting guests

This is the initial stab at inviting guests. It's **NOT** ready for in-depth review yet. I would however appreciate any feedback you can throw at me from a high-level POV.

It builds on a couple of other PRs, if you have any remarks about those, please file'em there.
Can we split the close function out into a separate function defined above:

```
var closeServer = function(callback) {
  server.close(function(err) {
    assert.ok(!err);
    var keysToClear = [
      'oae-authentication/cas/enabled',
      'oae-authentication/cas/url',
      'oae-authentication/cas/loginPath',
      'oae-authentication/cas/mapDisplayName',
      'oae-authentication/cas/mapEmail'
    ];

    ConfigTestUtil.clearConfigAndWait(globalAdminRestContext, tenantAlias, keysToClear, function(err) {
      assert.ok(!err);
    });

    AuthenticationAPI.once(AuthenticationConstants.events.REFRESHED_STRATEGIES, function(tenant) {
      return done();
    });
  });
};

// Wait until the authentication api has finished refreshing its strategies
AuthenticationAPI.once(AuthenticationConstants.events.REFRESHED_STRATEGIES, function(tenant) {
  return callback(validTicket, closeServer);
});
```