Basic temperature support

this adds the prerequisites to allow to implement simulators with basic temperature support. (i.e., ones with spatially varying but temporally fixed temperature within the domain.) The most problematic change which I can see is the change to the unit system: It is necessary because converting Celsius/Fahrenheit to/from Kelvin requires do add an offset besides applying a scaling factor. In this PR's implementation, it just throws if one tries to specify a composite unit were one of the bits specifies a non-zero offset. Better ideas are appreciated...