DataType constructor taking DataValue constructors as 2nd argument now

If a DataValue is given as second parameter to the constructor, then the data value type will be
taken from the constructor. This should be the preferred way of creating a data value type.

Change-Id: I61cdcabd4112ae1ea69dcd22d23ed24e0c69dfeb