Features/sqlalchemy

This seems like a good spot to review this code and get it merged. All (four) tests that we have at this point pass.

Functionality that is currently implemented:
* Get a user by id
* Get a user's recent routes
* Get a user's top routes
* Get a user's friends
* Add a friendship between two users
* Get a route by id
* Get a waypoint by id
* Get a popularpath by id
* Get a popularpath's top routes
* Get the overall top routes (efficiency)
* Get the overall top users (exploration)
* Add a user
* Add a route
* Add a waypoint

Functionality that is not yet implemented:
* Get a route **and its waypoints** (or get all the waypoints for a route)
* Modify a route to set the start and end waypoints
* Connect a login token with a user
* Generate a new session for a user
* Check session and friendship on requests for user data
* Calculate the exploration score when a new route is added
* Get waypoints by nearby coordinates
* Modify a user's exploration score when new routes are added
* ...

Things I'm pretty sure we'll be dropping
* Automatically add popularpaths when enough routes use the same start/end points
* ...

Also, we might want to squash this branch down into only one or two commits... not really necessary, though.