Allow all headers requested for CORS.

- We allow all headers requested in preflight request. The CORS
  specification does leave the door open for this, as mentioned in
  http://www.w3.org/TR/cors/#resource-preflight-requests
  Note: Since the list of headers can be unbounded
  simply returning headers can be enough.
- This is a followup to review:
  https://review.openstack.org/#/c/24415/.
- Fixes bug 1155034.

Change-Id: If7b8f2f3a581c5209892d1ccc9f06ddb8fac92dd
Refactored lists of nodes to contact for requests

Extensive refactor here to consolidate what nodes are contacted for
any request. This consolidation means reads will contact the same set
of nodes that writes would, giving a very good chance that
read-your-write behavior will succeed. This also means that writes
will not necessarily try all nodes in the cluster as it would
previously, which really wasn't desirable anyway. (If you really want
that, you can set request_node_count to a really big number, but
understand that also means reads will contact every node looking for
something that might not exist.)

* Added a request_node_count proxy-server conf value that allows
  control of how many nodes are contacted for a normal request.

In proxy.controllers.base.Controller:

* Got rid of error_increment since it was only used in one spot by
  another method and just served to confuse.

* Made error_occurred also log the device name.

* Made error_limit require an error message and also documented a bit
  better.

* Changed iter_nodes to just take a ring and a partition and yield
  all the nodes itself so it could control the number of nodes used
  in a given request. Also happens to consolidate where sort_nodes is
  called.

* Updated account_info and container_info to use all nodes from
  iter_nodes and to call error_occurred appropriately.

* Updated GETorHEAD_base to not track attempts on its own and just
  stop when iter_nodes tells it to stop. Also, it doesn't take the
  nodes to contact anymore; instead it takes the ring and gets the
  nodes from iter_nodes itself.

Elsewhere:

* Ring now has a get_part method.

* Made changes to reflect all of the above.

Change-Id: I37f76c99286b6456311abf25167cd0485bfcafac
Correcting output of swift-ring-builder

Indent swift-ring-builder output was changed according
with old style (before implementation of region tier).

Change-Id: I0d1cc7acdc5baf86f343745aea6fc2120838fd36
fix probe tests to work in a VM using mount_check

If mount_check is true (ie an SAIO with "real "devices, not loopback),
then the servers will correctly return 507 when given a nonsense path.
The first element is treated as a drive path, and that path isn't
mounted. This patch adds 507 as a valid status response to the server
check.

Change-Id: I1d1bb0ab78fd9ea17323635da7e686182fbdbf13
Merge "fix probe tests to work in a VM using mount_check"
Expirer now quotes names when deleting

Change-Id: I5c615c6f32967510f09b783b1ba7089119f1d8bd
Merge "Correcting output of swift-ring-builder"
Merge "Refactored lists of nodes to contact for requests"
Merge "Allow all headers requested for CORS."
Merge "Expirer now quotes names when deleting"
update to saio documentation

Change-Id: I992f97544ef356432deebe5900426a2041c7a40e
first pass

Change-Id: Ie750cf0aa7e6156ffa3239dc1f2136aa40e92787
second pass at saio docs

Change-Id: I828df5879e92a6ab96ce037c8824498c77d9f130
/etc/swift/swift.conf must be individually created

Change-Id: I24f809820fd403fbc46201c366b4ba020e885962
Restore Fedora in SAIO

This is a minimum change. Fortunately we are all Linux and thus
are rather similar.

Also, fix a consistency problem with /var/cache/swiftN where
recon drops caches.
add ~/bin/stopall, allow passthru of parameters from .probetests to nosetests

Change-Id: I2163e0638531ef0ddebb30da9baf9103371210ad