Get haas.model working with things besides sqlite

This now at least populates the db with MySQL. I'm putting the do not merge label on this, because I want to test it more thoroughly against mysql first.

The main thing that was required was explicit length fields for string/varchar columns. Perhaps troublingly, the default behavior seems to be to silently truncate any values that are too big to fit. We should probably check this ourselves, which this doesn't do currently.