Allow multiple headnodes per project
Merge branch 'devel' into multiple-headnode-per-project

Conflicts:
	haas/model.py
Make network operation succeed more often

Now detaching a network succeeds even if it's already detached, and attaching
it succeeds even if it was already attached (whether attached in the same way
or a different way.)

Furthermore, the docstrings are now correct.
Make headnode network operations succeed more often too

Docstrings now correct.
Merge pull request #270 from gsilvis/multiple-headnode-per-project

Multiple headnode per project
Merge pull request #271 from gsilvis/networking-success

Networking success
Give a bit more information from APIError to the client.

We're putting a json object in the body of the response when reporting
an error to the client. This is at least a step closer to what we want.

We now also have the ability to override the http status code.
Add some more status codes.
Kill Flask.

...and use Werkzeug directly.

The logic is pretty much the same. Most of the decorators have moved to
a new module, haas.http. haas.api has otherwise barely changed.

Along the way I cleaned up various error messages and added some
comments that aren't strictly related to this patch -- they just
happened to be needed in code that I ended up touching.

This could certainly use more testing, and if nothing else I want to run
the deployment tests before merging.
Fix syntax error in requirements.txt
Remove confusing/unnecessary part of docstring.

@gsilvis suggested getting rid of this.
Merge remote-tracking branch 'moc/devel' into kill-flask

Conflicts:
	haas/api.py
Merge pull request #266 from zenhack/kill-flask

Kill flask