Filer: purge stripe objects that are truncated to zero

When truncating a file, current filer implementation does not delete
stripe objects that are truncated to zero. If we delete the file later,
these zero sized objects become orphans.

This patch fixes the issue by changing the meaning of TRIMTRUNC OSD
operation. When OSD handles TRIMTRUNC operation that truncates object
size to 0, it compares the operation's truncate seq with the object's
truncate seq. If the operation's truncate seq is larger, it delete the
object. If the truncate seq check is for the case that OSD receives
client's write before receiving MDS's truncate.

Also set length field of TRIMTRUNC operation to (uint64_t)-1. OSD uses
it to distinguish requests sent by old clients.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
mds: revoke Fb cap when truncating file

Previous patch makes the filer delete stripe objects that are truncated
to zero. After deleting the objects, OSD can't use truncate seq to detect
old write requests. So we revoke both Fw and Fb caps before truncating a
file, this guarantee that all old write requests are finished.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>