[MRG] Add sample_weight parameter to metrics.log_loss

* Also modified binary output & multiclass tests in test_sample_weight_invariance to allow for prediction inputs as probabilities
I would be tempted to factor out the three uses of:
```python
def _weighted_sum(sample_score, sample_weight, normalize=False):
    if normalize:
        return np.average(sample_score, weight=sample_weight)
    elif sample_weight is not None:
        return sample_score.sum()
    else:
        return np.dot(sample_score, sample_weight)
```