Optimize floating ip list to make one db query

Currently the floating ip code will make 2 db queries for every
single associated floating ip when list is called. This adds
a couple of joins in the db layer to avoid having to make so many
calls. This dramatically improves floating-ip-list. On a simple one
node test the time dropped from 2.35 seconds down to 0.5 seconds
for a list with 10 associated floating ips.

Part of blueprint optimize-nova-network

Change-Id: I0571013393b2dbad42c15e690c7783d5ceecaeb2
Merge "Optimize floating ip list to make one db query"