Add setup implementations for network manager plugin

Two plugins supported:

* FlatDHCP
* VLAN

Setup selects plugin from configuration and executes appropriate setup_network
function.
Pass plugin configuration to setup function

Pass PLUGINS configuration dict to setup function to support networks
setup in environments with different network managers.
Pass events handler to setup_networks functions

This is required to emit setup-related events during reset.
Merge remote-tracking branch 'origin/master' into network-migration-tasks
Network dict generator plugin implementations

Two network managers are supported:

* "FlatDHCP" for nova-network
* "VLAN" for nova-network

Selection controlled by the same parameter as setup (PLUGINS:network_manager).
Use tempfile for caching test image
Random suffixes for test resources in setup

This is needed to avoid conflicts in case of faults during reset. Resources
created by subsequent setups will not conflict with resources from previous
setup runs.
Correct handling of lists of ip addresses

If Nova API returns a list of ip addresses in 'cidr' field of network dict, use
netaddr.IPSet to create range from the list. Otherwise, pass the list 'as is'.
Fix test image name format
Create networks with project_id from Destination cloud

Network info dict contains project_id field with id of the tenant from Source
cloud. Replace that field with id of corresponding tenant from Destination cloud
when ensure network migration.
Pass tenant_info to EnsureNetwork tasks via migrate_nic, migrate_network
factories.
Exclude 'vpn_public_address' from network info validation as that address is
cloud-specific.
Merge pull request #29 from MirantisLabs/network-migration-tasks

Improve Nova networks migration tasks and flows