Performance: Move static middleware up the stack

Move the express middleware that serves static files
closer to the top of the stack, so we don't have to
authenticate and hit CouchDB for every simple GET
request to our web server.
Database: Use nano sometimes

Hack in nano as we begin to try things
on production systems and discover what
is slow or doesn't work.

Nano appears to be slightly faster over
time than cradle, based on a few ad hoc tests.

It's not too much work to have nano and
cradle plugged in at the same time, for the
time being.
Performance: Entrance: Get image in parallel

Get the profile image in parallel to the profile
data, to basically halve the load time of the page.
Auth: Save user to db (or retrive) when signing in

Move our database operations into passport.serializeUser,
out of passport.deserializeUser, saving the user data
as part of the session.

This allows us to avoid calling the database for every
http request, cutting our response time in half.

The trade-off is that if we need to care when data saved
in the session is changed in the database.
Database: Put connection options in config

Use our standard config mechanism for specifying
the location of the database.
Database: Use authentication when appropriate

Sometimes we need to log in to our database, like
when it's on the public web. So let's make that
possible.
Config: Can specify administrators

Administrators have to be set somewhere, so let's
put them as a list in our config.js for now.

Also add a simple /whoami/role for the client to
learn what permissions it has.