Return owned object from PropertyMap

To help keep track of object ownership, use smart pointers in
PropertyMap.

Bug: 163171599
Test: presubmit
Change-Id: I4194e6640c8b0e1ec0db9d9e65b3f6862d6f37d4
5 files changed