Scala: Merge sort for lists of type T, parametrisation, polymorphism, comparison operation and implicit parametres