Rather than always creating a new floating IP, search the provided pool for an unallocated address and use this instead. Only allocate a temporary address if there is no spare address in the pool. Closes #4215