Default reduction always applied by `Metric`, even when requesting `'none'` reduction
🐛 Bug

Metric reduction doesn't behave the same between the functional and class API when using reduction='none'. The functional API applies no reduction as expected, but the class API seems to apply the default reduction regardless.
I haven't investigated the code yet to find the specific cause of the bug, so I'm not sure how widespread this bug is, but I've encountered it using both the DiceCoefficient and my own implementation of the differentiable dice, inheriting from TensorMetric.
To Reproduce
Given a pair of pred and target, I get the following behavior with 3 class + background segmentation data:
>>> from pytorch_lightning.metrics import DiceCoefficient
>>> from pytorch_lightning.metrics.functional import dice_score
>>> DiceCoefficient(reduction="none")(pred, target)
tensor(0.0800)
>>> dice_score(pred, target, reduction="none")
tensor([0.0876, 0.0937, 0.0586], device='cuda:0')
where I would have expected both version to give the same result.
The class API seems to apply the default reduction of 'elementwise_mean' even though I requested 'none', since:
>>> dice_score(x_hat, x, reduction="none").mean()
tensor(0.0800, device='cuda:0')
Expected behavior
Reduction behavior should be consistent between class and functional API, and to behave like the current functional API.
Environment
I just now installed Lightning from Git to ensure that it's not a bug that's already been solved since the last release.

CUDA:
- GPU: TITAN Xp
- available:         True
- version:           10.2
Packages:
- numpy:             1.19.2
- pyTorch_debug:     False
- pyTorch_version:   1.6.0
- pytorch-lightning: 0.9.1rc4
- tqdm:              4.49.0
System:
- OS:                Linux
- architecture: 64bit, ELF
- processor:         x86_64
- python:            3.8.5
- version:           #51~18.04.1-Ubuntu SMP Sat Sep 5 14:35:50 UTC 2020