Use restricted access context client for setup operations

Introduce 'user_cloud' as a set of clients restricted to user-level
access. Keep 'cloud' as a global admin client for operations that
require escalated privileges (like access to hypervisors extension).
Add floating ips by ServerManager method

Instead of adding floating ip by Server.add_floating_ip(), use
ServerManager.add_floating_ip() method for consistency and more
accurate context control.
Fixed restriction of right on resources management
Add logging on the client reinitialization
Don't create networks per tenant for FlatDHCP network manager
Add security groups on tenant creation in setup()
Add support for security group rules to fake Cloud
Service common case for network migration
Handle conflicting network IP ranges while migrating
Support single-network setup for nova-network with FlatDHCP manager
Merge branch 'master' into taskflow
Change inteface of getting clouds clients
Change semantics of expected exceptions and add stop exceptions

Expected exceptions should not break waiting loop: they are just
indicate that condition we're waiting for is not reached yet.
Stop exceptions mean that something went wrong with our task and
it has to stop, as it won't ever get to the expected state.
Support migration of security groups for the server
Support migration of floating ips for the server
Use restricted client for migrating security groups
Add nics list to logging while creating server
Enhance the Cloud.ping method

The ping method use the limit argument in clients listing methods. This
argument allow to prevent of getting a large response from servers.

Fixes the bug #PH-81. The glance.images.list() returns a generator and
this generator retrieves images from the server only on the first
iteration. The first iteration of the generator should happen to produce
the request.
Restrict source cloud client to tenant for migrating security groups
Merge remote-tracking branch 'origin/master' into api-migration-functions