Shared ip and first gen mac address range columns

These columns are needed for implementing shared ips and migration of
first-gen mac addresses.

RM#7675
Truncate IPPolicyCIDR's outside of Subnet._cidr

RM7210
Fixes RM8003

Previously, the logic to check for the existence of an allocated IPv6
address mistakenly included the tenant_id of the requesting tenant. If
this particular section was executed, the ip_address_find would return
None for the address, causing the update section to be skipped and the
ip_address_create to be executed. Since the IP address already may have
existed, the create would raise on a duplicate record, causing Quark to
only infrequently trigger the alternate RFC3041 IP generation logic.

Additionally cleans up a few of the related tests that had some
copy-paste.
Merge pull request #174 from Cerberus98/rm8003_merge

Fixes RM8003
Ensure exception arguments are handled if they exist

RM6485
Merge pull request #177 from jmeridth/fix_handling_of_exception_args_on_network_delete

Ensure exception arguments are handled if they exist
Quote tenant_id parameters to be strings

Queries did not match when queried as integers with sqlite 3.8.5
Merge pull request #178 from asadoughi/quote_tenant_id

Quote tenant_id parameters to be strings
Merge pull request #159 from asadoughi/ip_policy_inside_subnet

Truncate IPPolicyCIDR's outside of Subnet._cidr
Ensure default IP policy on subnets

* Added API validation
* Added database migrations

RM7212
Merge pull request #180 from asadoughi/ip_policy_default_policy

Ensure default IP policy on subnets
Merge pull request #182 from mpath/shared_ip_columns

Shared ip and first gen mac address range columns
Added size column to IPPolicy

RM7211
Merge pull request #184 from asadoughi/ip_policy_size

Added size column to IPPolicy