update how we assign floating ip to be more reliable

On private clouds we were failing to add an ip address because external
interfaces may not be the same default as they are on public cloud.
Add a search function for the first external interface and use it.

Change-Id: I4e69ec65be722f740e57f783a3ee2e64723c0eea