Use openstack.common.lockutils module for locks in tox functional tests.

Tox test has been switched to use openstack.common.lockutils module
for interprocess locks. However neutron tox functional tests was
left behind probably because locking is not required by the existing
functional test cases. This change makes neutron tox functional tests
adopt openstack.common.lockutils for locking.

Closes-Bug: 1332380
Change-Id: I4d6076e5f7586a11ea5381f18774d4bab57b0081
Raise proper exception in case duplicate ipv6 address is allocated

In case neutron tries to generate ipv6 address for slaac subnet,
it doesn't check that generated ip is unique and throws DB exception
that results in 500 HTTP error.

The fix throws proper IpAddressInUse exception.

Closes-Bug: #1358731
Change-Id: I66aed81b8d31d1eff6c87a77c4c4a813179ba458
Refactor plugin setup helpers out of test.base

Helper methods for plugin and notification setup were previously
defined on neutron.tests.base.BaseTestCase.  The imports required to
support these helpers were preventing the api tests from consuming
tempest due to configuration conflicts that resulted between neutron
and tempest.  This change moves the helpers to a new module in
tests/unit so that BaseTestCase can be safely used across all types of
tests.

Partially-Implements: blueprint retargetable-functional-testing

Change-Id: I44251db399cd73390a9d1931a7f253662002ba10
Merge "Raise proper exception in case duplicate ipv6 address is allocated"
Merge "Use openstack.common.lockutils module for locks in tox functional tests."
Merge "Refactor plugin setup helpers out of test.base"