Optimize db.instance_floating_address_get_all method

Optimize db.instance_floating_address_get_all
Was:
Get FixedIps with corresponding instance_uuid
For each FixedIp get associated FloatIp (N request)
Now:
Get only list of FixedIps ids
Get all corresponding FloatingIp with one query (select in)
Get only addresses from FloatingIps (because we are using only it)

Add temporary test for db.instance_floating_address_get_all to
ensure that it works as expected.

Change-Id: Id3c515de0ca35707bbfe46b991c2d7cf591e431b
Refactored tests for db.key_pair_*() functions.

All tests for db.key_pair_*() functions are in KeyPairTestCase class now.

blueprint test-db-api

Change-Id: I92358bcda157c95290b31e3b7997e3432a65b404
Add missing unique constraint to KeyPair model.

Added a missing unique constraint ("name", "user_id") to KeyPair model
(this constraint was in db schema but not in model definition).

blueprint db-enforce-unique-keys

Change-Id: Id231bca256e0cb39fcd8068acc7039240326fde2
Use Oslo's `bool_from_string`

Oslo provides an equivalent implmentation of `bool_from_str` so we
should switch the code to use that instead.

Change-Id: I382f23af2468e276ae4342dff18cf06e1c24b755
Merge "Use Oslo's `bool_from_string`"
Merge "Optimize db.instance_floating_address_get_all method"
Merge "Refactored tests for db.key_pair_*() functions."
Merge "Add missing unique constraint to KeyPair model."