Got rid of the `available` column in model.Headnode

This isn't actually used.
Added a `frozen` column to model.Headnode.

...and snuck in a few formatting changes.
Set the frozen bit when the VM is created.

In addition, we create the VM's nics inside it's own create method now,
rather than in project_deploy.

Before I go any further, I need to test this in a real environment -
I've touched code that isn't hit by the test suite because it needs a
real libvirt.

Still on the TODO list is making all of the relevant API calls check the
frozen bit.
Merge remote branch 'moc/devel' into immutable-headnodes
A few minor fixes to get hnic creation working again.

The headnode implementation is still highly vlan-dependant, and this
will assuredly break with any non-vlan driver.
Added `.ropeproject` to `.gitignore`.

I'm not going to bother with another feature branch for this. I'm using
[python-mode][1], which has some nice refactoring-related features,
which in turn tend to litter the working tree with directories by this
name.

[1]: https://github.com/klen/python-mode
Added headnode_{start,stop} api calls to the spec

Also stubbed out a few functions with docstrings.
Merge branch 'available' into immutable-headnodes
Merge branch 'immutable-headnodes' of github.com:zenhack/haas into immutable-headnodes
Removed haas.headnode.

The last bits of functionality have been moved to the Headnode class in
model. `delete` still needs updating.
Started tests for the headnode-freezing logic.

The one test I've written thus far is failing, since the relevant
functionality isn't actually implemented.

The `@no_dry_run` decorator around `Headnode.create` presents a problem
for this; we're setting the frozen bit inside of create, which means it
won't be set if we're just running the tests locally (with dry_run
enabled). Most likely the bit will have to be set in the api module
instead.
Added another test
Added implementations for headnode_{start,stop}.

These haven't been tested, except to the extent that it's possible to do
so with dry_run enabled.

There are a few related changes in this commit as well. In particular:

1. `model.Headnode.create` no longer sets frozen, that happens in
   `api.headnode_start` instead.
2. The `@database_only` decorator now enables dry_run.
Got one of the headnode-freeze related tests to pass.
Started working towards querying libvirt for the "frozen" state.

The frozen bit is still there, but wrapped in something that can be
swapped out.
Use same consistency model for headnodes as for projects.

This is based on a discussion I had with @okrieg the other day.

I still need to add more tests, and check the bits that the test
suite can't hit on a real setup. I also haven't added checks for
the dirty bit in all of the required places.
Add unit tests re: dirty bit for headnode_connect_network.

Plus a bit of refactoring (_prep* helper methods). One of the tests
is failing which is to be expected.
Add check for dirty bit to headnode_connect_network.
Add dirty bit tests to the rest of headnode_*.

This covers all of the api calls that should fail when the headnode has
been started. Two of the tests are failing, since the needed checks have
not been added.
Add the remaining needed dirty checks to headnode_*.

Along the way I discoverd that headnode_delete_hnic hadn't been updated
since we made *nics namespaced by their *nodes, and fixed this. This
probably would have done the wrong thing if we had multiple headnodes
with nics by the same name.