Update nova.network to use DNSDomain object

Update nova.network to make use of the DNSDomain and DNSDomainList
objects.  This removes more direct db API usage from nova-network.

This patch includes one really nice optimization, as well.  The method
get_dns_domains() used to call nova.db.dnsdomain_list(), which would
return a list of all domains in the database.  It would then call
_prepare_domain_entry() on each one, which would go back and query the
database again for each one to get the rest of the data associated with
it.  All of this data was actually returned from the db originally, but
the db API didn't return it.  Instead, it now gets all of this data
from the original db query for the list, eliminating N db queries each
time this code runs.

Part of blueprint nova-network-objects

Change-Id: I4b682affbbe988638c0c834b12a121e6a871080a
Merge "Update nova.network to use DNSDomain object"