Add network handling to build_and_run_instance

Allocates requested_networks and returns network_info to pass on the
virt driver spawn method so that networks can be set up on the instance.
If there's a failure during the instance creation the network will be
deallocated.

A failure to allocate requested_networks will abort the build because
the instance can't be built as desired.  And rescheduling to another
host is not likely to increase the chance of success.

This is one part of a series of patches to build up the
build_and_run_instance method.

Part of bp remove-cast-to-schedule-run-instance

Change-Id: I83e562845f07a76fa3365d46f1bb4a44dbda6bc1
Merge "Add network handling to build_and_run_instance"