osd/PG: store pg_info_t in xattr, purged_snaps separately

Separate the purged_snaps portion of pg_info_t (the one that gets big)
outside of the xattr, but everything else inside it.  This will eventually
let us avoid writing the second bit when that part of the struct doesn't
change, and xattr updates are much faster than xattr + file updates.

Signed-off-by: Sage Weil <sage@inktank.com>
osd/PG: only update pginfo file if that state changes

Add a separate dirty_big_info flag so that we only update the pginfo
"biginfo" file if that state changes.  This lets us avoid the cost in the
general case, like a regular PG write.

Signed-off-by: Sage Weil <sage@inktank.com>
PG: Write PG info to omap to test performance

Signed-off-by: David Zafman <david.zafman@inktank.com>