Fancy networks

See docs/networks.md for details.

Unit tests pass, but I should write some more unit tests to test the expanded functionality before we merge this.
I would put in a brief note saying what a null owner means, and maybe a
reference.

Quoting gsilvis (2014-10-03 00:31:36)
>    In haas/model.py:
> > @@ -185,14 +185,26 @@ def __init__(self, group, label):
> >  class Network(Model):
> >      """A link-layer network."""
> >
> > -    # The project to which the network belongs:
> > -    project_id    = Column(String,ForeignKey('project.id'), nullable=False)
> > -    project = relationship("Project",backref=backref('networks'))
> > +    # The project to which the network belongs, or None if the network was
> 
>    Belong is an ownership relationship, as always. You can delete things
>    you own, and when you create things, you own them. This would be
>    clearer and more meaningful if we had authorization code merged in.
> 
>    --
>    Reply to this email directly or [1]view it on GitHub.
> 
> References
> 
>    1. https://github.com/CCI-MOC/haas/pull/275/files#r18381164