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.

This seems to work as expect (to round to the 7th significant digit, irrespective of the scale of the score):

```
y_round = np.around(y_score, floor(7 - np.log10(y_score)))
```