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.

This required splitting the floating ip functionality into its
own file and moving a couple of imports. There was one minor change
made to associate_floating_ip that 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.

Change-Id: I6ec65b1f3e8d00cab778b10eec620760886567e0