Make networks more specializable

They now have three fields:

- 'creator' represents what project created it; or 'None' if it was
  administrator-created.  If there are still networks created by a project,
  then the project cannot be deleted.

- 'access' represents what project's nodes can access it, or 'None' if it's
  public.  This will eventually be extended into a fully-fledged ACL-style
  approach.

- 'allocated' represents whether the underlying ID was taken from the network
  driver's allocation pool.  (The other option is that it was manually
  specified by an administrator, using an API call that will be provided very
  soon.)  This changes the deletion characteristics.

These fields are not really independent of eachother.  Here are the legal
combinations, with some explanation:

(admin,   all,     yes): Public network internal to HaaS
(admin,   all,     no):  Public network that connects outside the HaaS
(admin,   project, yes): External provisioning network for one project
(admin,   project, no):  (kind of useless, but legal)
(project, project, yes): Normal project-created network

Here are the illegal ones:

(project, [anything], no): Normal users cannot just assert control of external
  VLANs.
(project, different project, yes): Normal users cannot share networks with
  other users [yet]
(project, all, yes): In the same vein, user-created public networks are also
  not allowed.