Prevent multiple device connections

RM#8865
Fixes #198
Merge pull request #199 from jmeridth/fix_git_modules_for_wiki

Fixes #198
Added agent submodule
Merge pull request #197 from asadoughi/agent

Added agent submodule
RM8741

Route create was allowing routes to be created without doing sanity
checking on gateway, cidr or subnet_id. This patch adds that and three
relevant tests.
Merge pull request #202 from Cerberus98/master

RM8741
RM8802

Removes the deprecated form of security group creation in the driver
logic. At the time of implementation, quark only supported one type of
network at a time, so we could make assumptions about what our security
groups were going to look like for a given implementation. However,
since then we added multiple-driver support, meaning the old assumptions
were now invalid.

Confining these changes to their own patch will reduce the overall
complexity of the final security groups implementation. While this
removes functionality, said functionality was already broken, so this
isn't strictly "more" broken.

Ensures basic functionality still exists with creation and deletion of
groups and rules.
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.
RM9285: Fix for upstream db change & py26 issue

* neutron commit 9bf0e6654480f98f2315a43687b267263a82a823 removed
helper methdods from neutron.db.api.
* py26 does not have dict comprehensions.