Update documentation for using keystone auth

Cleanup and add clarification to the documentation
for using Keystone auth.

Update to refer to auth_token middleware being
distributed as part of the keystomemiddelware project
rather than keystone.

Include capabilities (/info) in the list of reasons
why delay_auth_decision might need to be set in
auth_token middleware config.

Add description of the project_id:user_id format
for container ACLs and emphasize that ids rather than
names should be used since this patch has now merged:
https://review.openstack.org/#/c/86430

DocImpact
blueprint keystone-v3-support
Change-Id: Idda4a3dcf8240474f1d2d163016ca2d40ec2d589
Move multipart MIME parser into utils

Over on the EC branch, we need to be able to parse multipart MIME
documents in the object server. The formpost middleware has a
perfectly good MIME parser, but it seems sort of awful to import
things from formpost in swift/obj/server.py, so I pulled it out into
common.utils.

Change-Id: Ieb4c05d02d8e4ef51a3a11d26c503786b1897f60
Merge "Move multipart MIME parser into utils"
container.merge_items bug

When replicated container entries get round-tripped through json, they wind up
with unicode objects for names.  This causes equality checks to fail against
container entries, and you can wind up with duplicate records.  My bad.

Change-Id: I3aee2ad8dbd3a617efe37e887cfb902a3e4a1646
Test for unicode names in AccountBroker.merge_items()

ContainerBroker.merge_items() had a bug in it where non-ASCII Unicode
names would possibly result in duplicate entries in container
databases. AccountBroker.merge_items() doesn't do the same
bulk-operations tricks that ContainerBroker does, so it doesn't
currently have the bug. This commit just adds a test to ensure the bug
doesn't creep in should someone decide to make AccountBroker look more
like ContainerBroker someday.

Change-Id: Id2ac129828dbdf55b609d839ce4d9d42437ee0a3
Fixes several typos (Swift)

Corrects spelling errors found in comments.

Change-Id: I228a888e3f256569ea32ef1613092dbd63e13c62
Add "--no-overlap" option to swift-dispersion populate

This change allows the user to use a "--no-overlap" parameter when
running the tool multiple times. It will increase the coverage by
whatever is specified in the dispersion_coverage field of the conf
file in a manner where existing container/objects are left in place
and no partition is populated more than once.

Related-Bug: #1233045

Change-Id: I139fed2f4c967ba18d073b7ecd1e946ed4da1271
Merge "Fixes several typos (Swift)"
Merge "Test for unicode names in AccountBroker.merge_items()"
Merge "Add "--no-overlap" option to swift-dispersion populate"
Merge "Update documentation for using keystone auth"
First pass at some sort of abstraction over HTTP PUT streaming.

This'll make life easier for EC stuff because we can easily add
methods for getting the 100-continue headers, sending multipart
documents, et cetera.

If we want to get crazy, this would also be a good place to swap out
this one HTTP-over-TCP thingy for some wacky HTTP-over-0MQ thingy or
some in-process wrapper for swift.obj.server.ObjectController or
whatever. Or not. No pressure.
plumbing seems done

Change-Id: I66440ce0d78def0b25481dc1f27a628c75d1654f
make MIME errors debuggable

Change-Id: I72fd2c5316224d60515fc7b46c822ba7ffeb306f
Okay, it actually works this time!

Unit tests are quite broken, though, due to bad mocks/fakes.

Seriously, though, you can actually go watch the thing with tcpdump or
by logging stuff in the object server and you can *see* the footer
metadata coming through and getting added to the obj metadata.

Of course, the proxy doesn't actually go check the incoming object's
metadata or anything useful, but meh. ;) As they say, "Shoot for the
moon. Even if you miss, you'll wind up in solar orbit."

Change-Id: I495906ed09b269e4a7ef5a0f8d76b17be595f105