added metric validation steps

 >  added metric key and value length validation
 > added check for multiple metric key definitions
I don't think this constant should be here - it's not the maximum metric size,
but the maximum metric size for some particular metric types (which currently
happen to have the same size for all of them, but that may well change.)

Also, with floating point values, the magnitude of the value really isn't that important
in informing the largest string representation of it (as is fairly clear in the comment!)