#671 - Allow for redirecting with the external auth strategies

Specifying a `redirectUrl` request parameter in the external
authentication strategies will redirect the user to that URL once they
return to the application. If no value is provided, `/me` will be used.

I also took the opportunity to streamline the external auth strategies
a little bit so we don't need to paste the complex passport boilerplate
in each strategy's REST file.

Currently supported strategies:
 * CAS
 * Facebook
 * Google
 * Shibboleth
 * Signed authentication
 * Twitter
#671 - Addressed Open Redirect issue in external authentication
Clearing redirectUrl cookie
#671 - Moved external authentication strategies to POST
Using object for upconfigConfigAndWait
Added a bunch of external authentication tests and improved CAS error handling
Bumping timeout for travis tests as the coverage seems to have slowed it down a bit
Uploading test logs to Amazon S3 when a TravisCI build fails on master
Uploading Travis CI logs to s3/travisci/logs/hilary/
change config.previews.dir to config.previews.tmpDir
Expose Google Apps domain in config feed
Merge pull request #853 from stuartf/issue-853

Change `dir` to `tmpDir`
Merge pull request #851 from simong/travis-master-logs

Uploading test logs to Amazon S3 when a TravisCI build fails on master
Added a `resetAggregationForActivityStreams` to the activity aggregator

This allows you to halt activity aggregation for specific streams.

Each time an aggregate key for an activity stream is updated, we add the key in a sorted set of "active aggregate keys" for that stream.
Each time we insert a key in the set, we give it a rank of the current millis since epoch.
This allows us to easily remove aggregate keys that have expired.
The set itself also expires (maxExpiry seconds after the last time a key was inserted into it)
Resetting aggregation for a notification stream on marking notifications as read
Streamlined ActivityDAO's aggregate functions

* Refactored updateAggregateStatus into indexAggregateData and pass in the activity stream IDs
* Renamed delateAggregates into deleteAggregateData
Expanded the activity aggregation reset tests

Added some test code that will assert that an activity stream that holds
previously aggregated activities can be reset correctly
Compressing tests log when uploading to S3
Merge branch 'master' into authentication-redirect

* master: (42 commits)
  Expose Google Apps domain in config feed
  change config.previews.dir to config.previews.tmpDir
  Uploading Travis CI logs to s3/travisci/logs/hilary/
  Uploading test logs to Amazon S3 when a TravisCI build fails on master
  Removed activity migration for 3.0.0 to 4.0.0
  Embeddable link test now uses mocked HTTP server
  Specify base directory, use gitVersion utility
  use the external oae-rest module
  (Release 5.0.0) Remove shrinkwrap
  (Release 5.0.0) Bump version
  Revert 5.0.0 due to issue with the npm-shrinkwrap
  (Release 5.0.0) Remove shrinkwrap
  (Release 5.0.0) Bump version
  Update notify-content-share.meta.json.jst
  Set grunt-contrib-jshint to latest
  (TravisCI) Remove global phantomjs to force 'npm install' to download it
  Followup on SQL3
  Fix getLastUpdated for configuration values
  (CQL3) Fix unit test failure
  (Issue 696) Migrate queries to CQL3
  ...
Merge pull request #857 from simong/travis-master-logs-gzip

TravisCI: zip logs before shipping them to S3