mds: update CInode snapids (first & last) during replay

A user reported on the mailing list that they were hitting the assert
assert(in->first == p->dnfirst ||
	       (in->is_multiversion() && in->first > p->dnfirst));
in EMetablob::replay. It turned out that it was on an unlink operation
(which moved the inode into a straydir), and the stray dentry had a
first of 4 while the inode had a first of 2. Investigation revealed
that we weren't updating "first" or "last" of the CInode for any CInodes that
existed in cache before the replay! (Non-existent inodes had the correct
values set from the p->dnfirst and p->dnlast on construction).

To fix this, we modify EMetaBlob::fullbit::update_inode() so that,
*if* old_inodes is non-empty, we set in->first as 1 past the last
entry's "last" value. This is good because old_inodes will have been
modified any time the inode was (assuming it was already multi-version).

Signed-off-by: Greg Farnum <greg@inktank.com>