Nonrepeating ROC thresholds

Added a unit test to ensure that there are no spurious repeating values in the thresholds returned by roc_curve because of machine precision, and a quick stab at a fix.

Without the fix, the thresholds array produced in the unit test starts with the values [1, 0.99, 0.98, 0.98, ...]. There should be only one 0.98. The undesirable behavior stems from machine epsilon differences between predicted probabilities that are mathematically equivalent.

I am not sure that my suggested fix is the best approach, so I welcome comments.

I think I will actually use numpy.isclose() instead. Why reinvent the wheel? Its use of both an absolute and relative tolerance will give us the correct behavior even when the scores have a large scale factor.