Put X-Timestamp in object 404 responses

This way the container reconciler can tell (sometimes) that an object
was deleted at a certain time.

Change-Id: I3a56f2367585803b82f0b254946896c34746f9ca
Add object-reconciler daemon

This daemon will take objects that are in the wrong storage policy and
move them to the right ones. It operates on a queue similar to the
object-expirer's queue.

Discovering that the object is in the wrong policy will be done in
subsequent commits by the container replicator and the object updater;
this is the daemon that handles them once they happen.

Like the object expirer, you only need to run one of these per cluster.

Change-Id: I787f2a5ec2be7804eed87329cf6718f14027baea
Make the container replicator notice misplaced objects

If replication is attempted between two container DBs that have
different storage policy indices, then the older DB wins. When this
happens, all the objects in the newer DB are enqueued for
reconciliation.

This only happens on the sender (replicator) side of container
replication; on the receiver (container server) side, a 409 response
is returned. We can't go enqueue things on the receiver side because
it might take a really long time, and that's a bad idea to do in the
middle of servicing an HTTP request.

Change-Id: I8f493de5ccbcf2bb5984f306ad7603cdf9b32ce2
Make object updater reconcile on 409s

When the object updater gets a full set of 409s from the container
servers while processing an async-pending, that means the object in
question is in the wrong storage policy. Thus, the object updater will
enqueue it for reconciling.

Change-Id: I0f81ec4c22bdfd2d2c785e4c807cdf5368a75b24