Clean up swift-{account, container}-info

Reuse common code; add unit tests; ensured coverage was at 100%.

Change-Id: Id6fcc7cb07fd178e00d43968e3e2cc03226fdc05
updates for 1.13.1 release

Change-Id: I9a84c476e8d370c3a5dbc24db77a7258d521013f
Merge "Clean up swift-{account, container}-info"
Merge "Rework use of constraints to ease testing"
Merge "Only change collation for functional tests"
Fixed error in container sync exc handling

If container sync got a non-ClientException and then a ClientException
during a get/put operation, it previously would break in the error
handling.

Change-Id: Ib2fa70270f3ec870bf60d5bbb3e8f514aeeb0927
Merge "Read the configuration once for all func tests"
Move module level setup under setup_package method

Perform all the package level test setup under the setup_package
method so that we only read the configuration file on disk when
functional tests are run. This let's us "play nice" with other tests.

Change-Id: I699d664bcef6754aac4ec6877830e745b764342f
Move module level funcs to unit tests that use 'em

The chunks() and timeout() module level functions are only used by one
test each, so we just move them to those tests to indicate they are not
used globally.

Change-Id: I947dfceff01499ca09f3887157dc3bbcbcc0f20b
Use eventlet instead of threading for timeout

The only explicit use of Python threading is found in the
testFileSizeLimit test. Using eventlet seems a bit easier to follow,
accomplishing the same goal, and does not constrain us to a
multi-threaded environment.

Change-Id: I50b9fb798fbfd1d552b3c3f90309f6b86da34853
In-process swift server for functional tests

Provide a way to run the functional tests using a p/a/c/o server setup
in the same process running the nosetests infrastructure.

By setting the environment variable, SWIFT_TEST_IN_PROCESS, to a true
value, the functional test set up will construct a proxy, account,
container and object server running in the same process that is running
the functional tests, ignoring any external swift service. This
in-process swift environment is akin to the one used in
test/unit/proxy/test_server.py.

Setting that same environment variable to a false value will ensure the
in-process servers are not used.

When the environment variable is not present, and both
/etc/swift/swift.conf and /etc/swift/test.conf are _not_ present on the
system where the functional tests are executing the in-process
environment will be used. Previously, if no /etc/swift/swift.conf and
/etc/swift/test.conf files were found, the tests would just be marked as
skipped.

Using this in-process method allows one to gather code coverage using
the functional tests to exercise code paths, in addition to the unit
tests, or more easily debug existing functional tests, or write new
ones.

The are two constraints that are changed for use with the in-process
functional tests: max_file_size is lower to roughly 8 MB and
client_timeout is set to 2s.

Change-Id: I5acd65e3068868d6509feae1d1954237d37fad45