Refactors scheduler.chance.select_hosts to raise NoValidHost

This change is intended to refactor the method to be consistent
with the filter_scheduler.select_hosts implementation.

This method is called by scheduler.manager and it is exposed
through the scheduler.rpcapi. Thus, both implementations should
behave the same.

This change is needed by others that will move cold migration
to conductor.

Partially implements bp cold-migrations-to-conductor

Change-Id: I0f6fef43324cf829cdb26633874c537572423f77
Fix db.models.Service description

DB models definition should be up-to-date with DB schema obtained after applying of
migrations. Currently, there are no tests enforcing this and it's really hard to
analyze what indexes should be added, and what indexes we have at the moment.

So the first step is it to fix all models, and add missing descriptions about
Indexes and UniqueConstraints in __table_args__ and use explicit 'nullable'
parameter in columns description.

Add missing 'nullable' parameters to all Columns

Add empty __table_args__ parameter to Table

There is no indexes and no unique constraints in this table at this moment.

blueprint db-sync-models-with-migrations

Change-Id: I9b31e8976f514e370d6b46076b469fe5e5c8e0f1
Fix dangling LUN issue under load with multipath

This fixes an issue where not all of the LUNs are seen
by the kernel at attach time, but later become available.
We now rescan the list of devices seen by multipath at
detach time.

Also added another unit test case.

Fixes Bug: #1175366

Change-Id: Id5b313b17454ec32672373b7b564b9450466b7a2
Merge "Fix dangling LUN issue under load with multipath"
Merge "Fix db.models.Service description"
Merge "Refactors scheduler.chance.select_hosts to raise NoValidHost"
Merge remote-tracking branch 'm_src_repo/citrix-fixes' into build-temp