Update project_deploy to new driver API, and test

New test: Check that project_deploy doesn't flat-out crash.  In the process,
fix a bug where the driver functions didn't actually have the right name.

This fixes issue #179
Don't reference vlan_no in project_deploy

Add a test to check that, and fix bugs in the drivers on the way.
Document seemingly meaningless code in null driver
Put deploy->apply in test suite
Clean up haas/api.py, and write helper for namespaced-searching

This is a terrible commit.  I'm sorry.

- Make the names of arguments to functions be uniform.  Note that I'm
  type-punning the arguments.  They start as strings and turn into objects.
  This should have been a separate commit, but it wasn't when I did it, and I
  found it nearly impossible to separate out.

- Create 'owner' field of namespaced objects.  This replaces the old 'node'
  field on nics, 'headnode' field on hnics, and 'switch' field on ports.  This
  makes the searching much nicer.  (Also fix the small number of tests that
  referenced those fields directly.)

- Write helper functions _must_find_n and _assert_absent_n, for namespaced
  searching, and use them everywhere appropriate
Update docstrings in haas/api.py
Factor out common SQL query
Fixed formatting bug in the dell driver, bad int in printf.
Document consistency model
Fix several issues in docs/consistency-model.md

- Clarify that some operations don't care about the dirty bit

- Use 'apply' rather than 'deploy'

- Clarify failure mode and idempotency of 'project_apply'

- Fix description of 'node_{attach,detach}_network'

- Document limitation of 'headnode_delete'

- Needlessly reindent paragraph for 'headnode_power_{on,off}'
Use 'frozen' terminology
Rename headnode_power_{on,off} to headnode_{start,stop}
Remove confusing clause in consistency model doc
Replace 'connect' with 'attach'
Headnode-create deployment test and supporting decorators.
Added node allocation to deployment_test decorator.
Update overview.md

Added headnode host as a component of a HaaS installation
Check that HNIC is attached before attaching to bridge

Previously, the code would attempt to attach the HNIC to a network, and hit a
null dereference if it wasn't attached.  Now it simply skips creating the
HNIC.  It might be nice to create the HNIC but not attach it, but it's a
little harder to do that.

This fixes bug 195
Fixed a typo in a check_status_code invokation.
Use a fresh UUID for vm name, rather than SQL id

This makes the VM names globally unique, allowing multiple different instances
of the haas to share a headnode host.  It also fixes #123.