Add get_console() method

Add the get_console() method to the base console interface class. When
implemented this method should return the necessary information for the
client to access that console.

Change-Id: Idb1796000b0b7b5a9967fcb756c0b7de5d38f801
Implements: blueprint serial-console-access
Add samples to serve API through Apache mod_wsgi

The default API service (ironic.cmd.api) uses the wsgiref library.

Some deployers may want to serve the API through apache/httpd instead.

This patch adds application hooks to use with mod_wsgi, and a sample
apache2 config file to demonstrate its use with debian-based distros.

Change-Id: I44cd8e0941c350a6e5c16cf2d068c3e8d684ab47
Related-bug: #1279206
Add topic to the change_node_maintenance_mode() RPC method

Topic is used by the distributed hashing algorithm in order to know to
which conductor it should route the RPC messages to. All the methods in
the rpcapi should support passing a topic to it.

Change-Id: Ida9f2efd07cf5a4f1445f68cdc8aac4e752a8c7a
Implement _update_neutron in PXE driver

Implement the _update_neutron method in the PXE driver,
so that it may update the DHCP BOOT options in Neutron,
and add unit tests.

Change-Id: I221ac15d9e43e1c8728aa2b100bc02763a160b85
Implements: blueprint add-neutron-support
Add testing and doc sections to docs/dev-quickstart

Add notes to dev/dev-quickstart to demonstrate how to
start up and interact with ironic-api and ironic-conductor
services locally, in a python virtualenv.

Also add some instrutions on building the documentation locally.

Change-Id: I01eb7ffb5ebe510cec9e4bc2f6ac0f0cc616493c
Fix race condition when changing node states

To fix race condition we're adding a mechanism of background task
execution in conductor. The conductor will get synchrozed AMQP call,
reserve lock, start the background task and return empty response to
the API. In case when lock cannot be acquired or background tasks pool
is full, the exception is sent back to the API and the task is not
started.

Also the patch adds an ability to control resource locks manually.
This feauture used to release lock in the end of background task.

Change-Id: I4095de2d82058ea5e052531698e67a0947424435
Closes-Bug: #1259910
Merge "Implement _update_neutron in PXE driver"
Merge "Add testing and doc sections to docs/dev-quickstart"
Merge "Add get_console() method"
Merge "Fix race condition when changing node states"
Merge "Add topic to the change_node_maintenance_mode() RPC method"
Merge "Add samples to serve API through Apache mod_wsgi"