Implemented subnet.allocation_pools + unit tests

subnet.allocation_pools depends on the IP policies implementation.
TCP/UDP port range checks
Merge pull request #127 from kilogram/quickfixes

TCP/UDP port range checks
Adds a proper path for fetching TM2

Updates requirements.txt to fetch repoze.tm2 from github.
Merge pull request #128 from Cerberus98/update_requirements

Adds a proper path for fetching TM2
Merge pull request #121 from asadoughi/allocation_pools

Allocation pools
Clean up around some of the new code plus tests

Adds some more tests to the plugin for coverage purposes and missed edge
cases, adds new defensive input handling in security group rule
creation, and other random cleanup.
Merge pull request #129 from Cerberus98/cleanup_merge

Clean up around some of the new code plus tests
Pulls Mac Address Range plugin support out

Refactors the quark plugin by moving Mac Address Ranges and associated
tests into separate submodules.

Also includes a hack for a pretty heinous bug. Check out
https://github.com/jkoelker/quark/issues/130 for details.
Merge pull request #131 from Cerberus98/mrs_merge

Pulls Mac Address Range plugin support out
Fixes #130

Moves the uuid generation event listener from the plugin to the DB API
to decouple test expectations from the plugin.
Merge pull request #132 from Cerberus98/issue130

Fixes #130
Refactors Security Groups into their own module

Pulls security groups and their associated unit tests into separate
submodules intended to make plugin.py easier to read.
Moves IP Policies into their own plugin module

Refactors plugin.py, moving IP policies and associated tests into their
own modules for enchanced plugin.py readability.
Merge pull request #134 from Cerberus98/ip_policies_submod

Ip policies submod