Add nova client support for nova-manage service command

Implements the one workitem of blueprint apis-for-nova-manage

This add three CLI (service-list/sevice-enable/service-diabel) in
nova-client.

So we can use:
"nova service-list" like "nova-manage service list" with two optional
parameters. Show a list of all running services. Filter by host and
service name.

"nova service-enable hostname servicename" like "nova-manage service
enable hostname servicename". It will enable the service specified by
hostname and serviename.

"nova service-disable hostname servicename" like "nova-manage service
diable hostname servicename". It will disable the service specified by
hostname and serviename.

This patch depends on https://review.openstack.org/#/c/15206/

Change-Id: I01d4cee4ef95c1783f6181f8b840244e748387e5
fix hypervisor-servers for hypervisors without servers

At the moment hypervisor-servers throws an AttributeError for
hypervisors with no assigned instances. This patch checks first
if there are assigned instances before looping through them to
avoid the exception.

fixes bug 1076435

Change-Id: I504e3f234fd041325b63295fab77f9ed3f704db0
make tenant id optional for quota-defaults and quota-show

When using quota-defaults or quota-show without specifing a tenant
the currently used tenant should be used.

Change-Id: I1ef71b68673dd4a95cbf8b5a8dc901fb6eb06865
Make sure create_image returns result

manager.servers.create_image() returned uuid of the snapshot, but
Server.create_image() didn't. Make them work the same.

Change-Id: I763197ac8ae542e7ce13569d8ce7e98ec92ccc63
Cleans up the flavor creation code. Fixes bug 1080891.

Change-Id: Idc76cd01d1537ab87723a05ab8dd81015284e3c8
Added --extra-opts to the nova ssh command

This will allow for remote command execution and advanced ssh options
like portforwarding and connection sharing.
The goal is to support ssh commands like
nova ssh fe55adc9-cb1e-44a4-bd36-6a537b238172 --extra-opts='-NfnMS ~/.ssh/master-fe55adc9-cb1e-44a4-bd36-6a537b238172'
and ssh fe55adc9-cb1e-44a4-bd36-6a537b238172 --extra-opts='-t "sudo puppet agent --test"'
This will alow easier scripting of the cli... It is not intended
however to replace using the nova python api. Therefore I kept it simple.

Change-Id: Icce811caf637fc92c6d6374bfb846ea9525a7e05
Boot from volume without image supplied

Allow for booting instances from volume without the image parameter
supplied. This change is related to the change
I530760cfaa5eb0cae590c7383e0840c6b3f896b9
in opnestack/nova. It allows for boot to work with no image supplied
to accommodate booting from volumes only.

It also makes it possible to interpret show servers that were started
without images, so from volumes only

Change-Id: I5ba9b0f35a5084aa91eca260f46cac83b8b6591e
Merge "Add nova client support for nova-manage service command"
Merge "make tenant id optional for quota-defaults and quota-show"
Merge "Make sure create_image returns result"
Merge "fix hypervisor-servers for hypervisors without servers"
Merge "Added --extra-opts to the nova ssh command"
Merge "Cleans up the flavor creation code. Fixes bug 1080891."
Merge "Boot from volume without image supplied"
Expand help message for 'migrate' to explain how the new host is selected

Fixes bug 1078247

Change-Id: Iedfd6fc957fd1c2e53f7685b02bd33e16d9342e9