Add travis config
Fix date format issues, form error handling

Define DATE_DISPLAY_FORMAT in models.Event to use for parsing and
formatting displayed dates, and configure datetimepicker to use an
identical format (though it uses a different syntax).

Refactor event updating/creating to allow for in-form error reporting,
in place of just ``res.send(400, errors)``.

Add an event.getEventUrl() function that returns the shortName URL (if
present), or the ID-based URL.  Update event redirect handlers to use
this.

Add a new express.locals var, "baseUrl", to use in place of hard-coded
``unhangout.media.mit.edu``.

Remove unnecessary _.bind calls from lib/unhangout-routes.js.

Update tests to reflect these changes, and add an initial .travis.yml
file.
Remove dev flag from travis npm install
Add moment-timezone to package.json
Set redirect server default to false
Remove duplicate travis npm install
Fix timezone handling. Store dates in UTC.

Moment-timezone note: only use the constructor ``moment.tz(date, zone)``
for datestrings that lack timezone info.  For dates with timezone info,
use ``moment(date).tz(zone)``.
Add UTC to zone list
Eliminate test db lookups which depend on ordering

Change all DB lookups which use ".at(0)" or similar, which expect
collection ordering, to calls that are ordering-independent, to ensure
that tests function on different OSes/installs.
Fix tests for email

Check outbox on next tick, so that email has had a chance to arrive.
Change default conf to not include empty auth attributes.
Fix hangout origin regex for tests
Increase hangout startup timeouts

Increase the timeouts for first connection to farmed and non-farmed
hangouts, to hopefully decrease incidences of in-the-wrong-hangout.

Add sinon to tests to mock time to enable us to test longer timeouts
without slowing the test runner; part of issue #245.

Add a hangout-url timeout on startup to invalidate URLs if no one
rejoins the hangout after a server restart.  Some old hangout sessions
still had old hangout URLs stored; this should clear them.
Update master .travis.yml
Fix clock restoration and sync setup
Get Backbone.sync init out of tests' global space

Different tests have different requirements for Backbone.sync -- and
sometimes mocha will parse a subsequent test file before finishing the
current.  If a statement which mutates Backbone.sync is parsed, it can
break previous tests.  Move all calls that mute Backbone.sync into
``before...(...)`` calls to avoid this.

Also, merge branch 'master' into header-ui, primarily sinon/mock-time
stuff.

Conflicts:
	test/test.hangout-redirects.js
Add sinon to package.json
Increase timeout and explicitly close socket in event session message tests
Remove debug error log messages
Temporarily remove sanitization from about block
Temporarily remove sanitization from event saving