Fix KeyError on Storage Policy Container Sync

In the proxy, container_info can return a 'storage_policy' of None.  When
you set a header value on a swob.Request to None that effectively just
delete's the key.  One path through the proxy during container sync was
counting on the the 'X-Backend-Storage-Policy-Index' being set which isn't
the case if the cached container_info if for a pre-policies container.

Also clean up some test cruft, tighten up the interface on FakeConn, and add
some object controller tests to exercise more interesting failure and handoff
code paths.

Change-Id: I643e08c208efdc5a39e840d9e96710ddad54236b
Fix pop_queue for move object twice

With the two vector timestamp change some resolution was lost in the queue
entries that could lead to the reconciler being unable to successfully remove
a processed item from the queue in pop_queue.  To ensure the queue entries
with a significant offset can be successfully removed while still handling
the re-enqueued object case issue the DELETE with the timestamp slightly later
than the maximum of the queue entries last modified time (q_record) and
misplaced objects timestamp (q_ts).

Change-Id: I87b1e4b4256af3f71defb58c8137c303d1ae63be
Fix potential missing key error in container_info

If upgrading from a non-storage policy enabled version of
swift to a storage policy enabled version its possible that
memcached will have an info structure that does not contain
the 'storage_policy" key resulting in an unhandled exception
during the lookup.  The fix is to simply make sure we never
return the dict without a storage_policy key defined; if it
doesn't exist its safe to make it '0' as this means you're
in the update scenario and there's xno other possibility.

Change-Id: If8c88f67ba7a3180ad06b586372fe35c65807aac
This setting should've been set to False back ...

...with commit 9eb797b09916574c2a4e0f5f9ea61fe120879075

With this setting to True in the code, any tools anyone writes will
automatically start preallocating, which is almost always bad these days
with SSDs. So, if you write a tool that just scan dbs for stats, it'll
commit any pending info triggering preallocation and bam, your SSDs
start to fill up. :/

Anyway, back when I wrote 9eb797b09916574c2a4e0f5f9ea61fe120879075 it
was my intention to have this off by default, everywhere; I changed all
the settings points but I failed to change the dang constant itself.
This corrects that.

Change-Id: Iada0a3f1ecfabda4a96f574903d8e2eed1f69064
Merge "This setting should've been set to False back ..."
Merge tag '2.0.0'

Swift 2.0.0 release

Change-Id: I5fdc1e7434bdf6d88c4b260798791ee59f0832c0