Interface and implementations of FieldValue.

Will allow us to create FieldValues only when needed to do actions on
DataObjects in a generic fashion. At other times the Data Objects
remain as is.