Return the evaluation result of Trainer.test 
🚀 Feature
This enhancement request is to let Trainer.test return the dictionary of test metrics.
Motivation


Currently, Trainer.test returns nothing. The user would have to open Tensorboard to see the test result or write a custom logger. For beginners, this enhancement offers simplicity to beginners.


In some scenarios for hparams search, the calling program needs to have the test result of each trial. Thus, it would be handy if Trainer.test returns a value.


def objective(trial):
   ...
   trainer = Trainer(...)
   result = trainer.test(best_model, validation_loader)
   return result['test_acc']

Pitch
If test_epoch_end already defines the return value, we can return the eval_results from run_evaluation and let Trainer.test return that result.
Alternatives
Pass a reference to a mutable collection of metrics summary to the Module and on_test_end, the user can choose to update the collection.
Additional context
There could be some refactoring that needs to be done as currently, Trainer.test has different code paths depending on whether model is passed or not or whether ddp is used or not.