Make networks more specializable

See docs/networks.md for details
Added node_delete to cli.py

node_delete was in api.py, but not in cli.py.  This commit adds it to cli.py.
Implement new network_create API

To make the test transition nicer, make a helper function in test_common, that
imitates the old network_create API.
Don't delete projects that can access nodes
Added Console Logging to HaaS

This patch adds console logging to HaaS by running ipmitool subprocesses that
log to files.  There is now an API call 'show_console' that displays the
contents of the console log to the user.  Log files are securely deleted when
nodes have a change in ownership.
Added docstring to node_delete
Test creation of fancy networks
Fix CLI for network_create
Merge pull request #276 from ryabouza/add_node_delete_cli

Added node_delete to cli.py
Console Feature Cleanup

This patch cleans up some of the code added in this feature branch.
Additionally, this patch also makes it so the user is in charge of starting and
stopping console logging via the API, instead of logging always happening while
a node belongs to a project.  This ensures that a large number of unused
logging subprocesses are not running.
Removed unnecessary import in api.py

import os was not being used.
Fixed garbled stdout when logging console

HaaS serve would produce garbled output while logging from the console.  This
was fixed by redirecting stdin to a PIPE that is never read.  This happened
because ipmitool was casuing the shell to behave like a tty.
Fixed string alignment
Clean up and document fancy_networks test
Document and improve network_create

- network_create now takes 'admin' instead of '' for admin-created networks
- docs are now cross-referenced with docs/networks.md
- 'ownership' has been clarified
- network_create_simple has been explained better, and turned into a CLI call
  as well.  (It's quite useful for the end-user.)
Changed console_log_filename from db entry to function.

Instead of storing the console log filename in the database, it is now derived
using a helper function in the Node class.
Fix whitespace errors in fancy-networks code
Report 500 status via an APIError.

Previously, node_power_cycle was the only api call making use of the
ability to return a status code. This patch defines an APIException to
use for that purpose, and removes the ability to return a status, which
simplifies the request handler a bit.
Merge pull request #277 from ryabouza/console_feature

Added Console Logging to HaaS
Add unit tests for haas.http.

There are some infrastructural classes in here that should probably get
moved to test_common or the like; in particular I wrote
HTTPEquivalenceTest with exercising the real api functions in mind.