Replace a use of putIfAbsent with ??= (#125)

Because it avoids using a closure, it seems that ??= [] can be used with better performance than putIfAbsent in groupBy.
diff --git a/lib/src/functions.dart b/lib/src/functions.dart
index 0f71548..5fbef30 100644
--- a/lib/src/functions.dart
+++ b/lib/src/functions.dart
@@ -49,8 +49,7 @@
 Map<T, List<S>> groupBy<S, T>(Iterable<S> values, T Function(S) key) {
   var map = <T, List<S>>{};
   for (var element in values) {
-    var list = map.putIfAbsent(key(element), () => []);
-    list.add(element);
+    (map[key(element)] ??= []).add(element);
   }
   return map;
 }