Finish initial docs

Finish the initial sections defined in the documentation index.
Add sphinxcontrib-programoutput to document command line utils.
Add py27 to the list of default tox targets.

Change-Id: I254534032e0706e410647b023249fe3af4f3a35f
Add per-test database fixture

And test it.

Change-Id: I49fb5f58127ed2a1c80282b55e30336da725b75c
Add a very basic functional test

It starts the daemon with a simple config file and ensures that
it spins up a node.

A timeout is added to the zmq listener so that its run loop can
be stopped by the 'stopped' flag.  And the shutdown procedure
for nodepool is altered so that it sets those flags and waits
for those threads to join before proceeding.  The previous method
could occasionally cause assertion errors (from C, therefore
core dumps) due to zmq concurrency issues.

Change-Id: I7019a80c9dbf0396c8ddc874a3f4f0c2e977dcfa
Add a test for subnodes

Some misc changes related to running this:
  * Set log/stdout/err capture vars as in ZUUL
  * Give the main loop a configurable sleep value so tests can run faster
  * Fix a confusing typo in the node.yaml config

Additionally, a better method for waiting for test completion is added
which permits us to use assert statements in the tests.

Change-Id: Icddd2afcd816dbd5ab955fa4ab5011ac8def8faf
Fix missing attribute error in subnodes

If statsd was enabled, we would hit an undefined attribute error
because subnodes have no target.  Instead, pass through the target
name of the parent node and use that for statsd reporting.

Change-Id: Ic7a04a85775a23f954ea565e8c82976b52b218c7