Switch to new server structure

- Use Mongoose for MongoDB interaction.
- Take advantage of Mongoose schemas and validation to enforce structure on the structured part of our data
- Use an actual directory structure

There are breaking API changes that affect the mobile client and dashboard. In particular, we have changed getting responses restricted to a bounding box and getting responses as CSV/KML:
- `GET /api/surveys/SURVEYID/responses?bbox=1,2,3,4`
- `GET /api/surveys/SURVEYID/responses.csv`
- `GET /api/surveys/SURVEYID/responses.kml`

/cc @hampelm