Reentrant lock based on underlying object

Fixes #13 

Lock based on underlying object rather than `wrapper.setting`. Helps when he have several wrappers on one object.