Convert Nova's virt driver to hypervisor plugins

This moves all of Nova's hypervisor (VIRT_DRIVER) configuation from
stack.sh to individual plugin files in lib/nova_plugins/hypervisor-*.
Adding support for a new hypervisor is now as simple as adding a new
plugin file.

The hypervisor image name and URL configuration in stackrc has been moved
into the plugin files; the variable names are changed around a bit to
set the defaults properly if nothing is set in the users localrc.
The names in localrc have not changed so this is all backward-compatible.

Rebased to support NUMBER_FAKE_NOVA_COMPUTE from https://review.openstack.org/39851

Change-Id: I83cfb620b1afb1ed7596827c2392bcd6c38b9f06
Add support for Docker in Nova

Adds lib/nova_plugins/hypervisor-docker to use Docker as a Nova
hypervisor.  This assumes that the Docker daemon is already running
before stack.sh starts and aborts if the daemon is not found.

Change-Id: I9e7065b562dce2ce853def583ab1165886612227