untilLazySingleton<TSuper extends Object, TSub extends TSuper>  method 
Waits until a dependency of type TSuper or its subtype TSub is
registered. TSuper should typically be the most general type expected.
Implementation
@pragma('vm:prefer-inline')
Resolvable<TSub> untilLazySingleton<
  TSuper extends Object,
  TSub extends TSuper
>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) {
  return untilLazy<TSuper, TSub>(
    groupEntity: groupEntity,
    traverse: traverse,
  ).then((e) => e.singleton).flatten();
}