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
Quoting George Silvis, III (2014-12-11 15:43:43)
>    In [1]haas/test_common.py:
> >  def releaseDB(db):
> > -    """Do we need to do anything here to release resources?"""
> > -    pass
> > +    """Clean out the database, so it's empty for the next test."""
> > +    db.commit()
> > +    db = Session()
> > +    for cls in Model.__subclasses__():
> > +        db.query(cls).delete()
> > +    db.query(NetworkingAction).delete()
> > +    db.commit()
> 
>    If we're using init_db(create=True, uri="sqlite:///:memory:"), then I
>    don't think we need this logic either.

And this is totally broken anyway -- can't believe I forgot about it!
Let's talk about what to do with this pr tomorrow.

-Ian