Optimize floating ip list to make one db query

Currently the floating ip code will make 2 db querys 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