Prevent multiple device connections

RM#8865
Merge pull request #203 from Cerberus98/rm8615

RM8802
RM8816

Adds handling for protocols 0 through 254. The field in both v4 and v6
traffic is 8 bits wide, and the RFC specifically designates 255 as
reserved.
Merge pull request #204 from Cerberus98/rm8801

RM8816
Quieter unit tests

I couldn't find any options while perusing the alembic documentation
that specifically controlled logging, plus control of everything seems
to fall under the env.py umbrella, so I decided I would leave logging
unconfigured unless it was otherwise necessary.

There are still a handful of warnings that appear in the test run that
can be cleaned up later, but at least the entire run fits on one screen
again.
Merge pull request #205 from Cerberus98/master

Quieter unit tests
Merge pull request #206 from rackerlabs/rm_8865

Prevent multiple device connections
RM9078

Implements pessimistic connection pooling to attempt to mitigate a
transient error causing connections to report "MySQL has gone away" but
not correctly recycle. The listener itself is contained in a
configuration variable defaulting to False.
Merge pull request #207 from Cerberus98/master

RM9078
Allowing PUT that grows allocation_pools

RM9104

Previously allocation pools couldn't become less restrictive but wouldn't
raise any error (they'd just not update). This allows a user to make the pool
bigger.

Added tests to ensure the policies generated are consistent.

TODO: Previously skipped IPs must be handled
Merge pull request #208 from roaet/growing_pools

Allowing PUT that grows allocation_pools
RM8880

Adds translation methods for making ethertype and protocol human
readable. Additionally, adds a new migration that includes a new foreign
key from remote_group_id back to the reference security group and converts
ethertype to an integer.
Fix PUT to port with fixed ips

RM9097

Ran into an unrelated problem which needed to be fixed: device_id is not
required by neutron and shouldn't have been. quark will now set the device_id
to empty string should the device_id not exist in the port request body.

This fixes the ipv6->ipv4 conversion error when updating ports.
Merge pull request #209 from Cerberus98/rm8880

RM8880
Removing all references to validate_gateway_excluded

Why? RM9134. We've decided to follow upstream's example
and allow gateway_ip for subnets to exist inside of the
allocation pool.
Merge pull request #210 from roaet/bug_put_port_fixed_ips

Fix PUT to port with fixed ips
Removed ip_policy_id from subnet view

RM9101

This is now a configurable variable using QUARK.show_subnet_ip_policy_id.

Fixed flake8 issue
Merge pull request #214 from insequent/fix_nexthop_and_gateway

Removing all references to validate_gateway_excluded
Merge pull request #211 from roaet/remove_policy_from_subnet_view

Removed ip_policy_id from subnet view
RM8894

Adds a quota for the number of security groups allowed per port.