Have ironic plugin add its extensions dir

This avoids needing to set api_extensions conf variable to the path,
which is not easily determinable when the package is installed.

This also matches what other plugins do.
Merge pull request #2 from bradley-morgan/portsec

Port Security
do not fail when removing a ip binding that does not exist
Merge pull request #3 from bradley-morgan/ignore_ip_unbinding_failures

do not fail when removing a ip binding that does not exist
minor fixes

* log request body for port update
* do not attempt to remove lldp configs in cisco driver
* do not raise when deleting ports with missing bindings
Merge pull request #4 from bradley-morgan/teeth_testing_615

Ignore LLDP on port clear
add and remove ipsg when configuring an access port to ensure that it was removed
Merge pull request #5 from bradley-morgan/teeth_testing_615

add and remove ipsg to ensure that it's actually removed from the interface
Add retries on auth failures

Do it.
Add config option for port security

...and fix flake8.
pass context.session to some db ops that were missing it
need eol match for dhcp snooping table lookups
Merge pull request #6 from bradley-morgan/teeth_testing_615

pass context.session to some db ops that were missing it
use portchannel id, not whole port
Merge pull request #7 from bradley-morgan/teeth_testing_615

use portchannel id, not whole port
Revert "use portchannel id, not whole port"

This reverts commit 35c048a53df4ec1d7e1c53839cf058e8adc85c97.
Merge pull request #8 from bradley-morgan/teeth_testing_615

Revert "use portchannel id, not whole port"
add more commands to the blacklist
Merge pull request #9 from bradley-morgan/teeth_testing_615

add more commands to the blacklist
Retry on Permission denied

Not cool:

CiscoException: % Permission denied for the role

Assuming this is similar cause to previous auth failures. Retry on this.

Also, while we're at it, let's retry on this one, too:

CiscoException: Not connected to NETCONF server