Return VNC port in show_headnode

There's a little bit of (documented) trickiness, in haas/model.py

This needs to be deployment-tested.
Return port 'None' instead of -1
Document return value for no_dry_run decorator
Use an XML parser to parse XML
Iterate over nodes rather than networks in project_apply

When iterating over networks, unattached ports won't be applied.  This created
a bug where nodes were never actually removed from networks.  Iterating over
the nodes instead ensures that every relevant port is configured.

This fixes #200
dell: Document surprising success of detaching port

While fixing #200, ryabouza and I tried fixing the problem here, figuring that
sending 'None' instead of a VLAN ID was clearly incorrect.  But it's actually
fine!
Add an api call to power cycle a node.

This involved a handful of changes:

1. Add three columns to the Node class, with ipmi-related info.
2. Add corresponding parameters to Node.__init__ and node_register.
3. Add the api call itself, node_power_cycle.
4. Add the cli wrapper.
5. Update some of the tests due to (2).
Headnode-create deployment test and supporting decorators.
Added node allocation to deployment_test decorator.
Merge branch 'remove-port' of https://github.com/gsilvis/haas into deployment-tests-vlan-fix
Added isolated network test
Finished network isolation test for deployment tests.
Fixed a bug in the hnic_cleaup decorator that prevented it from deleting the appropriate VLANs.
Included disclaimer in deployment tests docstring, removed commented out PDB statements, and fixed a typo in a comment.
Replace 'deploy' with 'apply' in unit tests
Updated docstring for deployment.py to include disclaimer.
dell: Make previous magic explicit instead
Merge pull request #203 from gsilvis/deploy2apply-2

Replace 'deploy' with 'apply' in unit tests
Fixed typos in comments and futher explained the deployment_test decorator.
Merge pull request #201 from gsilvis/remove-port

Remove port from vlan correctly