OSD,PG: create and remove the snap mapper object

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: stop trimming when we run out of snaps!

Signed-off-by: Samuel Just <sam.just@inktank.com>
Context.h: adjust both finish_contexts versions

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG::proc_primary_info: snaps which are fully purged should return -ENOENT

Signed-off-by: Samuel Just <sam.just@inktank.com>
OSD::DeletingState: no need to lock in destructor

No other references can exist at this point.  Also,
it's not safe to hold the lock while calling the
Contexts in the list -- any of those might take a
different lock.

Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>