Use the scale as the tick key function.

Previously we were using string coercion as the key function for axis ticks. However, when the stringified value of the tick does not fully capture the representation (such as a date with millisecond precision, whose string form only has second precision; fixes #1529), string coercion is insufficient.

Fortunately, there is an equivalently-simple key function for tick identity: the scale! If the scale does not return a unique position for the given tick, then the tick would be overlapping, so it serves perfectly as the key function.