Rewrite `Listing` code using Q and promises

This ports over some of the changes realized in the `Stream`
implementation.
Initial work towards sql database init and schema

The implementation uses sequelize, and simply consists of a bunch of
model definitions, which, once we fully decide how we want to structure
things, we can start filling with data.

Database organization is pretty similar to how things were working out
with the Python/MongoDB implementation.