Network: manage neutron client better in allocate_for_instance

A neutron client only needs to be created twice in the aforementioned
method. The first time is for the tenant and the second, if necessary,
is for the admin. This is in the event that a port binding extension
is supported (only an admin user can read this).

In addition to this is a client exists then the method will make use
of it passing it to all internal methods called. This will enable them
to reuse that client instead of creating a new one.

Change-Id: Ia826199ea600ab55447ca4e8a78738c21b473efa
Closes-bug: #1377647
Merge "Network: manage neutron client better in allocate_for_instance"