ENH annotate metrics to simplify populating SCORERS

This patch makes `needs_threshold` and `greater_is_better` an attribute of each metric, rather than providing them when a `Scorer` constructed from them. I am not sure these are the most appropriate names, but their use means information isn't duplicated in `scorer.py`. (It also would allow for composite `Scorer`s to be easily constructed assuming their support in #1768 is granted.)

Perhaps there should be other machine-readable annotations on our library of metrics:
* lower and upper bound
* `is_symmetric`
* `multiclass`/`binary`/`regression`

but their application is not clear to me.