Fixes #281 Uses a nullSafeHashCode() function to accommodate null values in a Tuple.