Prevent multiple device connections

RM#8865
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