Use shared pointers for Mutations/OpRequests in the MDS

Using shared pointers is the first step in making the MDS workflow OpTracker-compatible, besides making our memory management a little easier going forward.

This branch is green on the gitbuilders, and I ran it through the fs suite. There was a little noise (known ceph-fuse crash and my ceph-qa-suite checkout was old so a few tests didn't run) but it looks good.