local WSGI Request and Response classes

This change replaces WebOb with a mostly compatible local library,
swift.common.swob.  Subtle changes to WebOb's API over the years have been a
huge headache.  Swift doesn't even run on the current version.

There are a few incompatibilities to simplify the implementation/interface:
 * It only implements the header properties we use.  More can be easily added.
 * Casts header values to str on assignment.
 * Response classes ("HTTPNotFound") are no longer subclasses, but partials
   on Response, so things like isinstance no longer work on them.
 * Unlike newer webob versions, will never return unicode objects.

Change-Id: I76617a0903ee2286b25a821b3c935c86ff95233f
Allow underscores in account/user in tempauth via encoding.

This patch introduces a new user format to tempauth which starts with
"user64_" and in which the account and user are base64 encoded (sans
padding equal signs):

user64_<account_b64>_<user_b64> = <key> [group] [group] [...] [storage_url]

This allows unambiguous parsing and adds the ability to have a user or
account name containing underscores.

The handling of tempauth configuration is fully backward compatible and
this only adds new, optional functionality.

Also beefed up unit tests to get full coverage of the user parsing code
in tempauth's __init__().

Change-Id: Id06304934ab8055a28921f2e1aa3c58a2036d8f8
catch no such file in hash_suffix

Change-Id: I70ee55d12b1ca91fdfe4891c3f82ab0f832f15d3
Merge "catch no such file in hash_suffix"
Merge "Allow underscores in account/user in tempauth via encoding."
Warn when killing fails with EPERM

Have swift-init warn when the running user doesn't have permissions to
signal processes.  Fixes bug 1017494.

Change-Id: Icb9048ab36f1ca73bb93b11c9c2aed882d99dfa7
close_swift_conn is a method of swift.proxy.controllers.base.Controller, not function

Change-Id: I84dd7bc2fc5ebd1190a7184f42fc5ecf5fd7b4d3
Merge "local WSGI Request and Response classes"
Merge "close_swift_conn is a method of swift.proxy.controllers.base.Controller, not function"
cleanup double repeated response.headers['X-Timestamp'] = file.metadata['X-Timestamp']
in swift.obj.server.HEAD

Change-Id: Ie7cf853319589db7c48836dd5d7fd5e68cb009cd
internal client unicode paths

made internal client handle unicode path parts by adding make_path method
fixed pep8 problems in internal client and its test
moved internal client unit test file to correct directory

Change-Id: Id1c81c9cb0db05342e4e8a8393db93552fda4647
add support for custom log handlers

Add a hook to get_logger to run custom functions to add custom log
handlers or the like.

Change-Id: Ib04b12939dcac7e4ad6453dea9795682044c6ae0
Merge "add support for custom log handlers"
Fix two edge cases with Range: header

This fixes swob to handle "Range: bytes=-X" where X > len(content); ex.
"Range: bytes=-17" when the object has 10 bytes. Based on the RFC, the
range is satisfiable and all bytes should be returned.

It also fixes "Range: bytes=-0" to be, correctly, not satisfiable.  In
addition, this case's response has Content-Length: 0 and has a zero-byte
body.

It also fixes an existing regression in swob for the case
"Range: bytes=100-" for a body of length < 100 (Content-Length was
negative and the body was returned).

The relevant RFC is 2616, section 14.35.1.

Change-Id: Ib3dc672e083173eb970c10801283813623f26e0e
remove configobj from deps

Change-Id: Ie566e712ba0d3dca543e99efbdb576b19623e73c
fix typing in swift/common.db, swift/container/server.db

Change-Id: I5efb3712faa7d159be2d86913fa5fbdf09b7f98f
Merge "remove configobj from deps"
Fixing alterations to sys.path

Fixes bug 1064249

sys.path should be extended not appended to

Change-Id: I3404a50b16b843b47f5082676029a4dd3b03f812
Merge "internal client unicode paths"
fix swob for make_pre_authed_request

Change-Id: Ic263f4a77a0aa0eb40078772a567eb41a60e40f7