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
This is the only part of the patch I disagree with.  Currently, the unit tests require no setup at all to run, and this changes that.