Eliminate memory leak due to circular shared_ptr

Without this, a Data::Implementation can have a circular reference of
shared_ptr to itself through .factory1

Change-Id: Ie05545e7ecc0ae85256d2c374fe79f0c678ccf64

Signed-off-by: Stephan Bergmann <sbergman@redhat.com>