Optimize network calls by moving them to api

Now that quantumv2 replaces api, there is no need for many of the
network calls to go over rpc. This patch optimizes them by moving
the implementation into the api class. Note that the old methods
are left in place to keep rpcapi compatibility.

This patch also adds api_deprecated in case anyone is using a
custom out-of-tree manager class. It is possible to set:

network_api_class=nova.network.api_deprecated.API

to get the old functionality.

Part of blueprint optimize-nova-network

Change-Id: I130908df060246e8a5f3711cf16d1c49ee3e2664
Split floating ip functionality into new file.

This is to prepare for moving this code into network.api. There was
one minor change made to associate_floating_ip. It no longer checks
access to the fixed ip's network before associating the floating ip
to the fixed ip. The calling side was already verifying access to the
instance so this is unnecessary. A note was added to the method call
to ensure future usage of associate_floating keeps this in mind.

Part of blueprint optimize-nova-network

Change-Id: I4fcda82eebee46d167e028bb68c8fedf2c3e03a1
Move floating ip db access to calling side.

Most of the allocation for floating ips can be done on the calling
side, including finding the proper host to send the message to.
This saves us from making an rpc call for allocate/deallocate and
makes sure that we only need 1 call for associate/disassociate by
finding the proper host to send the message to immediately.

Part of blueprint optimize-nova-network

Change-Id: I6ec65b1f3e8d00cab778b10eec620760886567e0