Implemented api.node_{connect,detach}_network.

These aren't tested; the point of this is more to act as a blueprint so
the members of our team who aren't as familiar with the data model have
something to work off of - per my conversation with Peter and Orran, I'm
going to ask the others to finish this, while I move on to other bits of
functionality.

This includes a change to the spec; detach_network no longer needs to be
given the network label. Instead, it just detaches whatever network is
there.
Documentation changes

Brought some of the calls in-line with the current thinking.
headnode_{connect,detach}_network

This is pretty much just copypasta from the node_ versions, and we
should abstract out what they have in common somehow.

I also snuck in a few small fixes:

1. Hnic's headnode_id column should be an integer, not a string
2. We should check that the nic label and node label "match" in
   detach_network.
Fix Nic model

First, the node is NOT nullable, because Nics /always/ belong to nodes.  For
that reason, the node MUST also be part of the constructor.

Second, remove the 'group' field from Nics.  We argued that it was easier to
have everything explicitly list its group, but that is not true for Nics.
This is because they are closely attached to Nodes, and Nodes can change
groups!  This would require, on every group change of a node, searching for
all the Nics attached to it and changing their groups as well.

The purpose of this commit is to prepare for implementing node_register_nic
and node_delete_nic, which were accidentally skipped.
Implement and test 'node_{register,delete}_nic'

This is almost copy-pasted from the 'headnode_{create,delete}_hnic' code.
Add REST interface for node_{register,delete}_nic
Fix project_{attach,detach}_network

Also add the two most basic test cases, to demonstrate that they at least kind
of work now.
Implement project_{connect,detach}_headnode

Also include 2 tests, to sanity-check.  More tests should be added later!
Fix and write basic tests for {head,}node_{connect,detach}_network

Only the tests for succesful operation have been written.
Fix/Add REST wrappers for project_{connect,detach}_{network,{head,}node}
Add REST interface for {head,}node_{connect,detach}_network
Add API calls for dealing with ports
Merge remote-tracking branch 'remotes/zenhack/switch_register/delete' into switch_register/delete

Conflicts:
	haas/api.py
Implement port_{register,delete}

There are large number of error conditions that are not checked for---for
instance, having a port_label that is not an integer.
Merge branch 'switch_register/delete' into connect_network
Implement port_{connect,detach}_nic
Add REST wrappers: port_{register,delete}, port_{connect,detach}_nic
Merge branch 'devel' into connect_network

Conflicts:
	haas/api.py
Merge pull request #152 from gsilvis/connect_network

Connect network