Added missing key/value type checks in computeXXX() and bulkComputeXXX() methods and new SPI tests 

I think it'd be a bit cleaner to move the value type check into `nullSafeValueHolder`.