Framework for staged setup

Split up the resource_setup in a number of methods to avoid
calls to tearDownClass when not needed, and enforce good
practices in the structure of the setUpClass.

Partially-implements bp:resource-cleanup

Change-Id: I3eae85f8e42f8ed58c87e6336792faf66c8f13aa
Make InvalidServiceTag inherit from TempestException

Exceptions which inherit from RestClientException should raise based
on an error response which is returned from REST API servers(nova-api,
etc). However, InvalidServiceTag is not now.
We have a plan RestClient is implemented in tempest-lib and related
exceptions also are moved to tempest-lib.
For doing that, this patch separates an unrelated exception from
RestClientException.

Change-Id: I49d50fb14b18c6fb263308a68d7ac6a97b1a9800
Move safe_body() into specific class

safe_body() is used in RestClient class only, so this patch
moves safe_body() into the class for the code cleanup.

Change-Id: Ice80d5ab19438162ba7a5705fa78c1ab91c1ccd5
Change rest client exceptions' inheritances

RateLimitExceeded, ServerFault and OverLimit raise at rest_client layer
and they should inherit from RestClientException for representing what
happens clearly. This patch changes them.

Change-Id: I0b74bd44a88cc68bdaeab6bd605722d47f5a28a9
Use assertIn to check for subnet membership

For dual stacked networks, the gateway port will have multiple subnets
associated

Change-Id: I450f896f29051921b011e1643f1a1e24ed82ac08
Handle pagination keys in lister response

Right now, NetworkClientJSON.deserialize_list() returns the
first key-value pair from the lister response.

But the lister response might differ when pagination is enabled
with pagination_max_limit set to some value. There will be one
additional key-value pair like {resource}s-links: {href:, rel: ..},
which deserialize_list() does not handle

This patch attempts to fix this bug

Change-Id: Ic554abb0342288f9226cc358dc930cc150d098a2
Closes-bug: #1398811
Remove network debug

This commit removes all of the network debugging gorp usage from
tempest. These were added as a crutch over a year ago to enable
real neutron testing in the gate, which was impossible to debug
at the time. This debug info is an inherent layer violation in tempest
which is only supposed to be black-box and not care about any of the
underlying internals. It also assumes a single host environment and
that tempest is running on that machine, which is mostly specific to
the gate and devtest setups. Additionally the amount of output on a
failure is staggering to the point where keeping this around is
counter-productive. If we are unable to debug issues at this point
neutron needs to improve their logging so people can figure out what
failed.

Change-Id: Ia1ed4ab3cd2e4941fb072b3390f4859420989e74
Adds scenario for IPv6 addresses

* Checks the way how  IPv6 addresses assigned to vNIC
* Eliminates hardcoded IPv4 subnet creation.
* Fixes problem with creating FIP for port with few addresses.
* Adds ping6 to remote_client

Partially implements: blueprint ipv6-api-testing-parity
Change-Id: I728edf0165ba47b6f8930f2fb3d08bd29cfbb317