Timer.cc: use complete() rather than finish()

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: add intrusive_ptr hooks

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: check object_contexts on flushed

At FlushedEvt, all outstanding io should be complete and
the object_contexts map should be empty.

Signed-off-by: Samuel Just <sam.just@inktank.com>
osd/: move ObjectContext over to osd_types.h

Signed-off-by: Samuel Just <sam.just@inktank.com>
Watch/Notify: rework watch/notify

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: accept watch cookie value with notify ack

Signed-off-by: Samuel Just <sam.just@inktank.com>
librados/: include watch cookie in notify_ack

Signed-off-by: Samuel Just <sam.just@inktank.com>
doc: add some internal docs for watch/notify

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: allow multiple watches in one transaction

Signed-off-by: Samuel Just <sam.just@inktank.com>
Merge branch 'wip_watch_cleanup'

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