Make service workers gracefully handle service creation race

Right now, service workers can race to create their service record
in the database. This makes a NotFound...Exists pattern not fail
when the service record shows up due to a successful sibling.

Change-Id: I3e912beeb953c85189f44171d958e9402abc01ae
Add Network object

This adds a Network object to provide services and modeling
for nova-network and its use of the current SQLAlchemy Network
model.

Related to blueprint nova-network-objects

Change-Id: I7f943cda32fc98b3b03cdbb5d68e0c741053afaa
Make obj_to_primitive() handle netaddr types

This makes base.obj_to_primitive() handle netaddr.IPAddress() and
netaddr.IPNetwork() objects so that they properly become strings
in the primitive format, which provides compatibility with existing
network dicts.

Related to blueprint nova-network-objects

Change-Id: I098d775a2a792073b2777495d665846f399ecf3e
Make nova-network use Network to create networks

This makes nova-network manager use the Network.create() method
to do the work of creating networks. It also makes the rpcapi
use the NovaObjectSerializer since this is the first change that
makes nova-network return or take an object via RPC.

Related to blueprint nova-network-objects

Change-Id: Ida9a05ac249ff168075f87e5dbdad6bc23e69561
Merge "Make service workers gracefully handle service creation race"
Merge "Add Network object"
Merge "Make obj_to_primitive() handle netaddr types"
Merge "Make nova-network use Network to create networks"