New system for the runtime representation of field values

User supplied values are encapsulated into a wrapper class FieldValue,
which keeps track of data type (FieldValue#getDataType()) and
operational type (FieldValue#getOpType()) information. A missing value
is represented by a null FieldValue instance.