lots of tweaks to improve rendering performance. Cacheing user views now, and accumulating them in a document fragment instead of adding them directly. Sorting is also disabled.
Fixes to installation docs; remove unused "login"

Add a notes to INSTALLATION.md explaining:
  - What to set the callback URL
  - how "UNHANGOUT_ADMIN_EMAILS" works

Also remove unused "login" route and method from
lib/unhangout-server.js.  Passport doesn't seem to use "failureRedirect"
when it has an explicit handler method set -- but even if it did, the
login route was calling an undefined view.  Currently, a auth failure
from "google" results in a 500 with error message, which is acceptable,
as the only thing that should cause auth failures is misconfiguration of
UNHANGOUT_GOOGLE_CLIENT_ID or UNHANGOUT_GOOGLE_SESSION_SECRET.
Merge pull request #210 from yourcelf/devinstructions

Fixes to installation docs; remove unused "login"
Fix formatting for DEVELOPMENT.md directory listing
Split "/about/" out; deduplicate template context

Rather than using javascript hacks to hide/show the #about div, separate
about and index into separate templates.  To deduplicate, also separate
the sponsorship message and analytics into template stubs so they can be
included in each of the views rather than duplicated.

(An alternative approach that seems heavier than necessary here would be
to invoke a Backbone.Router and unify index/about/how-to-hangout).

On the server, make use of "express.locals" to provide default context
(e.g. {_:_, user:undefined}) to all templates, simplifying "render"
calls.  Remove unused template vars (e.g. "loadApp").
Use correct template for about; re-add jumbotron
Merge pull request #213 from yourcelf/about

Split "/about/" out; deduplicate template context
Merge branch 'master' of github.com:yourcelf/unhangout
Deduplicate server startup/shutdown test helpers

Also start prepping for selenium.
Add selenium tests with initial frontend testcase

To run tests after this change, you must download
``selenium-server-standalone.jar`` from
https://code.google.com/p/selenium/downloads/list, and set its path in
conf.json as "TESTING_SELENIUM_PATH".  Once done, ``npm test`` will
invoke Firefox for test cases.  See the Testing section in
INSTALLATION.md for details on running tests with and without an X
server, and with and without selenium.
Scroll chat only when user hasn't scrolled up

Window will scroll to the bottom only if it is already scrolled to the
bottom, or the user sends a message themselves.  Fixes issue #209.

Tests are incomplete on this feature until we refactor passport mocks to
support multiple users, to test the functionality when a second user
sends a message.
Merge pull request #214 from yourcelf/selenium

Add selenium tests with initial frontend testcase
Merge branch 'master' of https://github.com/drewww/unhangout into chatscroll
Correct the comment.
Fix crash on event creation, add tests

Fixes issue #218, adds selenium test for admin event creation workflow.
add semicolons
Refactor mock authentication to support multi-user

Previously, auth mocking for tests worked by passing two options to the
server ("mock-auth" and "mock-auth-admin"), which influenced a number of
branches to change initialization and auth handling throughout the
server routine.

Replace all of this with a single "mockAuth" middleware, which is
installed prior to all other authentication middleware, and looks for
either an "x-mock-auth" HTTP header or "mock_auth" cookie in incoming
requests, which specifies a key for an authenticating user.  This
enables us to choose which user to mock-authenticate on a per-request
basis.  When using ``superagent`` or other raw HTTP requests, we can set
an HTTP header.  When using selenium, we can execute javascript on the
browser to set a cookie.

Since we now have multiple users, we can do away with the distinction
between "standardSetup" and "mockSetup" with admin status -- when you
want to mock an authenticated user, specify the header or cookie. When
you want to mock an admin, just make sure the mock user is an admin
(mock users are defined in lib/passport-mock).  When you want
unauthenticated requests, omit the header and cookie.
Merge branch 'chatscroll' into multi-user-mocks
Fix cookie-based mocks; adapt chat test for it
Merge branch 'event-blur-bugfix' into multi-user-mocks