Basic trash functionality

Now if you DELETE an object, a copy is saved to a trash container. If
that overwrites a previous trash copy, object versioning steps in to
save both the older one and the newer one.