REFACTOR roc_curve and precision_recall_curve

After getting caught on some of the quirks of `roc_curve` (I'm pretty sure that 'and' should be 'or' in https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/metrics/metrics.py#L662, or else the following two if clauses will never get used), I decided it and its cousin, `precision_recall_curve` could be neater, especially seeing as they share the need to calculate true positives and false negatives at each threshold.

This is my attempt at cleaning things up.