Added a 'nnrVal' type

Some parameters need to be real positive OR zero - have added a
NonNegativeRealValueType to handle this possibility. Also added a number
of TODO comments where feedback is required as to whether a value can
ever be zero (and should thus be changed to this new type...)