start ajax/user views
Merge branch 'master' into flask-auth
start models.User class
Add SQLAlchemy and Flask-SQLAlchemy to requirements.txt
Add psycopg2 to requirements.txt. db.create_all() works!
Route urls that aren't explicitly handled to the user_profile view function.
When url requests a user slug, pull that user from the db
displays user-profile page based on a URL like impactstory.org/<slug>.

For now, the profile page is just a lightly-modified collection report page;
we just put the user's full name in the "page title" part. We can make more
profiley later.
Submitting the create form sends json to /user, which sends back a slug.

Still need to actually create and save the collection and user in flask.
Submitting /create form makes collection and user, then sends you to your profile page.

Handles url slug collisions by appending random string to the end iff the collide.
Test for email existing in /create form work against Postgres user db.

Note that it doesn't test against the in-production couchdb user list,
so you could create a user that has an email we've already got in couch.
Make /create go-button spinner work.
Flask logs user in when you create an account
Adds password checking to User model; also, SQLAlchemy creates tables automatically.
Displays "Hi, <user.given_name>!" for logged-in users; "Log in" otherwise.
Flask login/logout works throughout.

Can't edit collections with the new system, though.
Rips out most of the User.js obj; fixes how it was hiding the Log Out link
Refactor views.py to remove oft-repeated template vars.
Logged-in vs non-logged in views now handled in CSS, not templates.
"not logged in" and "not owner" popups both work for editing profiles.

Adds a can-edit or can-not-edit class to the body.