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 14:32:38)
>    In [1]haas/test_common.py:
> > @@ -37,12 +37,18 @@ def network_create_simple(network, project):
> >
> >  def newDB():
> >      """Configures and returns an in-memory DB connection"""
> > -    init_db(create=True,uri="sqlite:///:memory:")
> > +    init_db(create=True,uri="mysql://haastest:insecure@localhost/haastest")
> 
>    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.

Ah, committing this was actually a mistake -- I didn't have a nicer way 
of actually running the tests against than changing the hardcoded url; 
this should be addressed as well.