Allow forcing local conductor.

This patch updates the conductor API to allow passing in a kwarg to
force local usage, even if configured for remote usage globally.  This
is useful if we want to convert some parts of the code to use conductor
db proxy APIs, but want to optimize usage to be local for cases where
using the db directly is not a problem.

Part of bp no-db-compute.

Change-Id: Ib7a717e1a6f132022787626e65cacaa8a4afd86c
Handle waiting for conductor in nova.service.

Previously we were waiting for conductor to respond to a ping() in the
compute manager.  This patch moves this down to the base Service class.
A nova service binary can indicate that db access is not allowed and if
so, as soon as the service gets created, it will block while waiting for
conductor to respond.

The compute service has been updated to use this.  This should not
result in any real functional difference.

The reason for this is that there is some database access that needs to
be avoided down at this level.  This allows us to divert these actions
to conductor if needed.

Part of bp no-db-compute.

Change-Id: Idd6387b9428e3f9f4e4dbfe51293693238b2daf0
Merge "Allow forcing local conductor."
Merge "Handle waiting for conductor in nova.service."