Change type conversion to check early for correct type
Change type conversion to check early for correct type

Type conversion is not required if the value is already of the correct
type.  Checking early means we do not need to call the converter, and
individual converters do not need to check for the target type.

wsick/nullstone,wsick/nullstone,wsick/nullstone