mds: Allow pin refs on inode to be real ref counts

Implement pin refs on the inode as a map instead of
a multiset, allowing individual ref counts to act as
real references with values that can be >1.

The pin refs are only used for debugging, but allowing
them to be >1 avoids the need for a separate state field
things like DIRTYPARENT.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
mds:  Use new pin ref code for DIRTYPARENT

Allow incrementing/decrementing the DIRTYPARENT pin ref as needed,
instead of using a state semaphore to keep track of whether its
set or not.  This allows us to remove the STATE_DIRTYPARENT field
on CInode.

Signed-off-by: Sam Lang <sam.lang@inktank.com>