Updated neutronclient dependency

This is needed by: 15a912b1ca3c24ba8851b8b77d6de8027e120d78

Change-Id: If0eab1b5dd102cc5ceb7720a8465ee47a708839d
Closes-Bug: #1280941
NSX: Fix possible deadlock in sync code

This patch removes the call to nsx from within the db transcation
which can cause deadlock if another request comes in during this time.

Closes-bug: #1278991
Change-Id: If16b53a77997bccfdff2554dead26f42e23eaec9
(cherry picked from commit d59d5a1c72c2324b857225680f5578d381a2ec73)
NSX: Sync do not pass around model object

The NSX sync backend previously passed around a sqlalchemy model object
around which was nice because we did not need to query the database an
additional time to update the status of an object.

Unfortunately, this was add done within a db transaction which included a
call to NSX which could cause deadlock this needed to be removed. Now a
dict is passed around instead and proper transaction handling
is used when updating objects.

Closes-bug: #1281772

Conflicts:
	neutron/plugins/nicira/common/sync.py

Change-Id: Id50abd8f2143b127d1ca81c360c1c6d400e1d74f
(cherry picked from commit 084b7f62280241a9037b6f9e592c466135e5fec1)
Merge "NSX: Fix possible deadlock in sync code" into stable/havana
Merge "NSX: Sync do not pass around model object" into stable/havana
Merge "Updated neutronclient dependency" into stable/havana
Prevent cross plugging router ports from other tenants

Previously, a tenant could plug an interface into another tenant's
router if he knew their router_id by creating a port with the correct
device_id and device_owner. This patch prevents this from occuring
by preventing non-admin users from creating ports with device_owner
network:router_interface with a device_id that matches another tenants router.
In addition, it prevents one from updating a ports device_owner and device_id
so that the device_id won't match another tenants router with device_owner
being network:router_interface.

NOTE: with this change it does open up the possiblity for a tenant to discover
router_id's of another tenant's by guessing them and updating a port till
a conflict occurs. That said, randomly guessing the router id would be hard
and in theory should not matter if exposed. We also need to allow a tenant
to update the device_id on network:router_interface ports as this would be
used for by anyone using a vm as a service router. This issue will be fixed in
another patch upstream as a db migration is required but since this needs
to be backported to all stable branches this is not possible.

NOTE: The only plugins affect by this are the ones that use the l3-agent.

NOTE: **One should perform and audit of the ports that are already
        attached to routers after applying this patch and remove ports
        that a tenant may have cross plugged.**

Closes-bug: #1243327

Conflicts:
    neutron/common/exceptions.py
    neutron/db/db_base_plugin_v2.py

Change-Id: I8bc6241f537d937e5729072dcc76871bf407cdb3