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).
Replace 'deploy' with 'apply' in unit tests
dell: Make previous magic explicit instead
Merge pull request #203 from gsilvis/deploy2apply-2

Replace 'deploy' with 'apply' in unit tests
Merge pull request #201 from gsilvis/remove-port

Remove port from vlan correctly
In no_dry_run, return return-value of called function
Make do without check_output in python-2.6
Merge pull request #206 from zenhack/powercycle-proxy

Add an api call to power cycle a node.
Add script to prepopulate vlans
Don't re-create bridges in model.py
Don't require calls to succeed

Now the script works even if the vlans already exist.
Merge pull request #199 from gsilvis/vncport

Return VNC port in show_headnode
.gitignore all *.cfg files, not just haas.cfg.

We may start using these on other branches, let's make sure they don't
get committed accidentally.
Merge pull request #210 from gsilvis/prepopulation

Prepopulation