Refactors the existing code to wrap a getter with a structure in order
to simplify adding additional per-property information. Adds an
emptyValue field to contain the empty value appropriate for the field
type.
Bug: 155628860
Test: m nothing
Merged-In: I7e169bd9b6e51b88e35bdf8673a5056337f778c1
Change-Id: I7e169bd9b6e51b88e35bdf8673a5056337f778c1
(cherry picked from commit b28369a982)