Make ImplContainer's impl_ptr private

Access to the shared_ptr is still possible via impl().